Gibt es eine Möglichkeit, zu wiederholen, playbooks, von wo Sie gescheitert sind?
Gibt es eine Möglichkeit, zu wiederholen, playbooks, von wo Sie gescheitert sind?
Ich fange es mit
vagrant provision
- Warum wollen Sie es zu starten, von wo es gescheitert? Die gesamte design-Philosophie rund um Ansible und viele andere Konfigurations-tools ist, dass Sie sollten in der Lage sein, um Sie auszuführen idempotently über und über.
- Kann nützlich sein, wenn Sie eine erste Aufgabe, die dauert eine Stunde, aber erfolgreich, und eine zweite, die fehlschlägt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bin ich mir auch nicht sicher, warum würden Sie wollen, dies zu tun als ein Ansible-playbook idempotent sein muss und so wieder läuft die ganze Sache von Anfang völlig in Ordnung.
Sagte, dass, wenn Sie haben einige brauchen für diese, Ansible macht einen retry-Mechanismus am Ende eines gescheiterten playbook, das aussieht wie:
Wenn Sie waren direkt auf dem Feld konnte man dann etwas laufen entlang der Linien von:
Machen, diese werden als provisioner zu Vagrant müssen Sie zum hinzufügen eines weiteren namens provisioner so Ihre Vagrantfile könnte so Aussehen:
Wie schon in den Kommentaren von der Vagrantfile dieser wird dann versuchen, führen Sie die
playbook.yml
playbook und dieplaybook.retry
wiederholen spielen, die erstellt wird, auf einem fehlerhaften Ausführung auf einem erstenvagrant up
. Wenn dieplaybook.yml
fehlschlägt, dann wird es automatisch versuchen, wieder (und vermutlich scheitern, wie Sie sind noch zu beheben, warum es fehlgeschlagen ist) und dann exit.Könnte man dann fix was benötigt wird, die Festsetzung in Ihre playbook oder Inventar, und führen Sie dann
vagrant provision --provision-with resume
zu führen Sie das provisioning-block genanntresume
weitermachen, woplaybook.yml
konnte, wenn Sie ursprünglich die Instanz bereitgestellt.Seien Sie gewarnt, aber, dass die
limit
option auf dem playbook bedeutet auch, dass alle Fakten/Variablen versammelten sich vor der früheren playbook gescheitert nicht verfügbar, erneut versuchen. Ich bin mir nicht sicher ob es ein guter Weg, um regather diese Tatsachen, vor der Ausführung des wiederholen-und wie bereits erwähnt würde ich auf jeden Fall lehnen, um wieder das ganze playbook bei Misserfolg sowieso.resume.raw_arguments = "--limit @/home/user/playbook.retry"
mitresume.limit = "@/home/user/playbook.retry"
um es zu erhalten arbeitend. Ursache dafür ist, dassvagrant provision
scheint zu verwenden'default'
als Grenzwert, wenn nicht anderweitig konfiguriert.