Twój podręcznik zatrzyma się, gdy wystąpi awaria i korzystasz z niego serial: 1
zgodnie z dokumentacją .
Domyślnie Ansible będzie kontynuował wykonywanie akcji tak długo, jak długo istnieją hosty w grupie, które jeszcze nie zawiodły.
To powiedziawszy, wydaje się, że istnieje pewne zamieszanie w społeczności w stosunku do domyślnego zachowania i wydaje się, że zmieniło się - lub było błędne - gdzieś pomiędzy 1,8 a 2,1.
Jeśli serial: 1
to nie wystarczy, użyj tego dodatkowego ustawienia:
max_failure_percentage: 0
W niektórych sytuacjach, na przykład przy aktualizacjach kroczących opisanych powyżej, pożądane może być przerwanie gry po osiągnięciu określonego progu awarii. Aby to osiągnąć, od wersji 1.3 można ustawić maksymalny procent awarii ...
==
Jeśli chodzi o ponawianie próby, powinieneś zobaczyć następujący komunikat o błędzie:
to retry, use: --limit @/home/user/site.retry
Użyj tej --limit
flagi, a przy następnym wykonaniu ansible-playbook
będzie kontynuowana od miejsca, w którym się nie udała.
Ponów próbę zostaną utworzone, chyba że skonfigurujesz retry_files_enabled = False
konfigurację.
Alternatywnie --start-at-task
może również działać.
Źródła:
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
W wersji 2.5+ (po pytaniu) znajduje się debugger, który obejmuje większość tego: https://docs.ansible.com/ansible/latest/user_guide/playbooks_debugger.html
Jeśli chodzi o jeden na raz, użycie „--forks 1” łączy się tylko z jednym systemem na raz, jeśli chcesz to zrobić ad-hoc, a nie za każdym razem.
źródło