回答:
障害が発生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
一度に1つについては、「-forks 1」を使用すると、毎回ではなくアドホックに実行したい場合に、一度に1つのシステムにのみ接続されます。