我有一个ansible剧本,会在剧本回顾中有一些间歇性失败的工作,如此
PLAY RECAP *********************************************************************
server1 : ok=10 changed=0 unreachable=0 failed=0
server2 : ok=9 changed=0 unreachable=0 failed=1
server3 : ok=10 changed=0 unreachable=0 failed=0
失败导致运行playbook的jenkins作业失败,但它需要传递才能在管道中继续。有没有办法从播放回顾中删除失败的作业?
答案 0 :(得分:0)
要问的第一个问题是为什么任务实际上失败了。如果某些任务可以在没有任何负面影响的情况下失败,您可以使用“ignore_errors:yes”运行它们,这样Ansible将继续执行下一个任务,就好像当前模块没有失败并且输出不会指示故障。
另一个解决方案是使用一个回调插件,它是Ansible的一部分,它处理来自剧本的实际输出。默认情况下,使用“默认”回调插件。但是Ansible中包含了很多回调插件。您可以在源代码中看到它们的列表: https://github.com/ansible/ansible/tree/devel/lib/ansible/plugins/callback
您可以尝试使用“stdout_callback”参数在ansible.cfg中设置的不同回调插件。根据你想要做什么,你可以使用null回调,它不打印任何东西。
如果您需要确定,更改和无法访问的任务数量,则可能需要创建自己的回调。这可以通过创建默认回调的副本并编辑出打印失败任务数的部分来完成。