Ваша книга воспроизведения остановится, когда произойдет сбой, и вы используете в serial: 1
соответствии с документацией .
По умолчанию Ansible будет продолжать выполнять действия, пока в группе есть хосты, которые еще не вышли из строя.
Тем не менее, в сообществе, похоже, есть некоторая путаница по поводу поведения по умолчанию, и, похоже, оно изменилось - или глючило - где-то между 1,8 и 2,1.
Поэтому, если serial: 1
этого недостаточно, используйте эту дополнительную настройку:
max_failure_percentage: 0
В некоторых ситуациях, таких как скользящие обновления, описанные выше, может быть желательно прервать воспроизведение, когда достигнут определенный порог отказов. Чтобы добиться этого, начиная с версии 1.3 вы можете установить максимальный процент отказов ...
==
Что касается повторной попытки воспроизведения, вы должны увидеть сообщение об ошибке, например:
to retry, use: --limit @/home/user/site.retry
Используйте этот --limit
флаг и при следующем выполнении, ansible-playbook
и он продолжит с того места, где он потерпел неудачу.
Повторные файлы будут созданы, если вы не установили их retry_files_enabled = False
в своей конфигурации.
В качестве альтернативы --start-at-task
может также работать.
Источники:
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
В версии 2.5+ (хорошо после вопроса) есть отладчик, который охватывает большую часть этого: https://docs.ansible.com/ansible/latest/user_guide/playbooks_debugger.html
Что касается по одному, использование «--forks 1» подключается только к одной системе за раз, если вы хотите сделать это ad-hoc, а не каждый раз.
источник