Ich habe folgendes ansible Textbuch:Überspringe die 1.9-Rolle von ansible nicht, wenn die vorherige fehlgeschlagen ist.
- hosts: webservers
roles:
- start_measurement_script
- run_calculations
- stop_measurement_script
- gather_logs
Ich mag würde Rolle auszuführen stop_measurement_script
auch wenn run_calculations
ausfällt. gather_logs
Rolle sollte jedoch nicht ausgeführt werden. Die Rolle enthält nur eine Aufgabe. Gibt es einen Weg, dies zu erreichen?
Ich benutze ansible 1.9.4, so kann ich blocks
Feature von Ansible 2.0 nicht verwenden. Ich habe always_run
Klausel gesehen, aber es scheint, dass der Name irreführend ist und es in verschiedenen Szenarien verwendet wird.
Lesen brauchen Sie 'start_measurement_script' und' stop_measurement_script' eine Rolle zu sein? Könnten Sie die Aktionen in 'run_calculations/tasks/start_measurement_script.yml' hinzufügen und dann den Fehler in run_calculations abfangen, include' stop_measurement_script.yml' und dann 'fail:'? – user2599522
Ich möchte 'run_calculations' nicht modifizieren, weil es in mehreren Playbooks verwendet wird und nur in diesem speziellen, Messskript verwendet wird. In anderen Spielbüchern möchte ich die nächsten Rollen überspringen, wenn 'run_calculations' fehlgeschlagen ist. – Infinity
Wenn dies der einzige Fall ist, können Sie ein Flag in den modifizierten 'run_calculations' hinzufügen, mit dem Sie die zusätzlichen Playbooks hinzufügen können, zum Beispiel' enable_measememnt', das immer auf false through 'run_calculations/defaults/main.yml' gesetzt wird Innerhalb dieses Playbooks können Sie 'vars: enable_measurement: true' setzen. – user2599522