Answers:
发生故障并且您正在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”仅一次一次性连接到一个系统,而不是每次都连接一次。