在默认情况下,任务失败时会中止剧本任务,不过可以通过忽略失败的任务来覆盖此类行为。在可能出错且不影响全局的段中使用ignore_errors关键词来达到目的。
环境:
受控主机清单文件:
[dev]
192.168.10.129
[all:vars]
ansible_ssh_user=root
ansible_ssh_pass=123
编写yum文件:
以下测试文件正常运行输出为:
111
123123123
333
运行结果:
但如果中间某段代码可能出错,再查看运行结果。(注释变量)
运行结果:
当代码2任务失败时,中止了整个剧本
解决方法:
在可能出错切不影响全局的代码段中添加 ignore_errors: yes 可以忽略错误
再次查看运行结果:
在代码2运行失败时(变量不存在)依旧执行了代码3,即测试成功!!
这里使用的是单任务忽略错误,只能忽略一个任务的错误。如果使用全局忽略错误,不论哪一步出现错误都会忽略错误并继续执行脚本。