Ich versuche, eine Datei zu erstellen, um anzuzeigen, dass eine Ausführung eines Skripts/BefehlKann ich denselben Ansible-Handler zweimal in einer Spielbuchausführung verwenden?
Ich weiß, geschehen wir hier/script Kommando vermeiden sollte, aber ich kann also nicht
erneute Ausführung Ich bin zu verhindern Erstellen einer Datei, um es zu bezeichnen wurde bereits ausgeführt
Dies funktioniert für die letztere Aufgabe, aber nicht die ehemalige!
Ich frage mich, wenn die gleiche Handler zweimal verwendet werden kann oder nicht
Aufgaben ..
- set_fact: donefile=nodesource_setup
- name: Ensure node install script executed
shell: ~/tmp/nodesource_setup.sh >> ~/tmp/nodesource_setup.log
args:
creates: ~/tmp/{{ donefile }}.done # Cannot one line this
notify: Done
- set_fact: donefile=ensure-npm-does-not-use-unicode
- name: Ensure npm does not use unicode
command: npm config set unicode false
args:
creates: ~/tmp/{{ donefile }}.done
notify: Done
Handler ..
- name: Done
copy:
content: "done"
dest: ~/tmp/{{ donefile }}.done
force: no
- meta: flush_handlers .. ist super thx, tat genau das, was ich wollte. großartige Einsichten. Ich bevorzuge Handler für triviale Benachrichtigungsaufgaben gegenüber normalen Aufgaben, weil es die Anzahl der Aufgaben reduziert, die ausgeführt werden, wenn die Behandler nicht ausgelöst werden. – danday74
In diesem Fall wird der Handler jedoch zweimal aufgerufen. Das einzige, was Sie speichern, sind vier Zeilen in Ihrem Code, die jemanden in der Zukunft wirklich verwirren werden, der die Handler verwendet, die im "Feuer" verwendet werden nur einmal "Methode. Wenn du der einzige bist, der * dieses * Spielbuch jemals verwalten wird, dann ist das wahrscheinlich keine große Sache. Wenn es eine Chance gibt, dass Sie das an ein Operations-Team weitergeben (oder besser noch in den Ruhestand!), Würde ich vorschlagen, dass Sie bei den beiden Aufgaben bleiben und nicht die Handler-plus-Meta-Problemumgehung. –