从Ansible回调插件设置退出代码

时间:2017-12-21 21:51:52

标签: ansible ansible-2.x

我正在编写一个Ansible 2.x回调插件,我希望能够根据v2_playbook_on_stats函数中的某些条件使用非零退出代码使当前的playbook失败。

我已经尝试过raise AnsibleError(),但是它被链接到某个地方被视为警告,这使得Ansible可以使用零退出代码完成。

我也尝试使用self._display.error(),但似乎什么也没做,只显示错误信息,然后Ansible再次以零退出代码完成。

有什么办法可以满足我的要求吗?或者回调插件从来没有让开发人员将剧本的状态改为失败?

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

也面临同样的问题,我发现我可以使用python的sys.exit(x)(x是各种退出代码)来停止或失败该剧本。

答案 1 :(得分:0)

你不能用回调做到这一点,策略插件是你的选择。

子类需要插件(例如linear),扩展run方法根据您的条件返回非零值,它将由PlaybookExecutor和cli翻译为程序退出代码。