Ihr Playbook stoppt, wenn ein Fehler auftritt und Sie serial: 1
gemäß der Dokumentation verwenden .
Standardmäßig führt Ansible weiterhin Aktionen aus, solange Hosts in der Gruppe noch nicht ausgefallen sind.
Das heißt, es scheint in der Community einige Verwirrung über das Standardverhalten zu geben, und es scheint sich irgendwo zwischen 1.8 und 2.1 geändert zu haben - oder fehlerhaft gewesen zu sein.
Wenn serial: 1
dies nicht ausreicht, verwenden Sie diese zusätzliche Einstellung:
max_failure_percentage: 0
In einigen Situationen, wie bei den oben beschriebenen fortlaufenden Aktualisierungen, kann es wünschenswert sein, das Spiel abzubrechen, wenn eine bestimmte Schwelle von Fehlern erreicht wurde. Um dies zu erreichen, können Sie ab Version 1.3 einen maximalen Ausfallprozentsatz festlegen ...
==
Wenn Sie Ihr Playbook erneut versuchen, sollte eine Fehlermeldung wie die folgende angezeigt werden:
to retry, use: --limit @/home/user/site.retry
Verwenden Sie dieses --limit
Flag bei Ihrer nächsten Ausführung von ansible-playbook
und es wird dort fortgesetzt, wo es fehlgeschlagen ist.
Wiederholungsdateien werden erstellt, sofern Sie dies nicht retry_files_enabled = False
in Ihrer Konfiguration festgelegt haben.
Alternativ --start-at-task
kann auch funktionieren.
Quellen:
https://github.com/ansible/ansible/issues/1663
https://github.com/ansible/ansible/issues/16241
http://docs.ansible.com/ansible/playbooks_delegation.html#rolling-update-batch-size
http://docs.ansible.com/ansible/playbooks_delegation.html#maximum-failure-percentage
http://docs.ansible.com/ansible/intro_configuration.html#retry-files-enabled
http://docs.ansible.com/ansible/playbooks_startnstep.html#start-at-task
In 2.5+ (weit nach der Frage) gibt es den Debugger, der das meiste davon abdeckt: https://docs.ansible.com/ansible/latest/user_guide/playbooks_debugger.html
Wenn Sie "--forks 1" einzeln verwenden, wird jeweils nur eine Verbindung zu einem System hergestellt, wenn Sie dies ad-hoc und nicht jedes Mal tun möchten.
quelle