Ansible: die Bereinigung Durchführen, auf Aufgabe Ausfall

Schreibe ich momentan eine Ansible spielen, folgt diesem Allgemeinen format und wird über einen cron-job:

pre_tasks:
  -Configuration /package installation

tasks:
  -Work with installed packages

post_tasks:
  -Cleanup /uninstall packages

Das problem mit der oben genannten ist, dass manchmal ein Befehl in der tasks Abschnitt scheitert, und wenn es das post_tasks - Abschnitt nicht ausgeführt werden, verlassen das system in einem chaotischen Zustand. Ist es möglich, zu zwingen, die Befehle in post_tasks ausgeführt, selbst wenn ein Fehler oder schwerwiegender Fehler Auftritt?

Mein Aktueller Ansatz ist die Anwendung der ignore_errors: yes alles unter der tasks Abschnitt, und wählen dann eine when: bedingte, um jede Aufgabe individuell zu prüfen, wenn das Vorherige Kommando erfolgreich war.

Diese Lösung scheint wie ein hack, aber es kommt noch schlimmer, denn selbst mit ignore_errors: yes gesetzt, wenn ein Schwerwiegender Fehler Auftritt, wird für eine Aufgabe, die das gesamte Spiel wird immer noch sofort scheitern, so habe ich auch einen cron-würde bash-Skript manuell überprüfen, auf Dinge, die nach erreichen play-Ausführung.

Alles was ich will, ist eine Garantie, dass, selbst wenn tasks ausfällt, post_tasks wird noch laufen. Ich bin sicher, es ist ein Weg, dies zu tun ohne Rückgriff auf bash-Skript-Wrapper.

  • Leider (für deinen Anwendungsfall) post_tasks ist nicht beabsichtigt, als eine Bereinigung. Unter Angabe der ansible führen: "Pre-Aufgaben und-post-Aufgaben sind weitgehend entwickelt für die Arbeit mit Lastenausgleich." (github.com/ansible/ansible/issues/3869)
InformationsquelleAutor Mark | 2014-05-26
Schreibe einen Kommentar