it-swarm.com.de

anhalten des Playbooks zur Bestätigung des Benutzers, ob Restaufgaben ausgeführt werden sollen

Ich verwende einen ansible-playbook, der viele Aufgaben enthält. Alle verwenden sie, um nacheinander ausgeführt zu werden, aber ich möchte das Playbook nach bestimmten Aufgaben pause, um den Benutzer zu fragen, ob er die restlichen Aufgaben fortsetzen oder beenden möchte. Ich habe den pause module von ansible gesehen, konnte aber kein Beispiel sehen, das Benutzer nach Ja oder Nein fragt, was wiederum das Ansible-Playbook entsprechend fortsetzt oder beendet.

13
Ajeet Khan

Das Modul pause macht genau das. Sie haben jedoch keine Möglichkeit, yes oder no zu beantworten. Stattdessen erwartet es, dass der Benutzer drückt Ctrl+C und dann a zum abbrechen. Um fortzufahren, muss der Benutzer nur drücken Enter.

Da dies für den Benutzer nicht völlig offensichtlich ist, können Sie es im Parameter Prompt beschreiben.

- name: Exterminate mankind
  pause: Prompt='Please confirm you want to exterminate mankind! Press return to continue. Press Ctrl+c and then "a" to abort'
22
udondan

Um eine Eingabeaufforderung für jede Aufgabe zu erhalten, ohne das Playbook selbst zu ändern, verwenden Sie die Option --step des Befehls ansible-playbook. Damit können Sie jeden Schritt vor dem Ausführen bestätigen. Sie haben hier die Möglichkeit, (N)o/(y)es/(c)ontinue auszuwählen. N überspringt diesen Schritt, y führt den Schritt aus und c setzt den Rest des Playbooks fort, ohne weitere Aufforderung zu geben (nützlich beim Debuggen und hinter dem störenden Ort.) Beachten Sie, dass dies auch funktioniert gut mit der --check-Option.

Offizielle Ansible-Dokumentation ist hier: https://docs.ansible.com/ansible/latest/user_guide/playbooks_startnstep.html#step

0
ernescz