如何让 ansible 仅显示某些剧本中的错误,甚至直接调用时?
我尝试抑制 std 输出,但这显然没有帮助,因为执行错误似乎被放入标准输出而不是 Linux 上的错误输出。
ansible all -a 'some_command_I_want_to_know_if_it_crashes' 1> /dev/null
Run Code Online (Sandbox Code Playgroud)
我只看到 Python 中的错误(异常等),但看不到剧本中的错误(红色文本)。
将其放入callback_plugins目录中并启用 stdout-callbacks ansible.cfg:
[defaults]
stdout_callback = actionable
Run Code Online (Sandbox Code Playgroud)
只需启用它,您将在输出中获得更少的信息,但您可以进一步修改插件代码以满足您的需求。
例如,要完全禁用成功任务的消息(无论状态是否为ok或changed)更改:
def v2_runner_on_ok(self, result):
if result._result.get('changed', False):
self.display_task_banner()
self.super_ref.v2_runner_on_ok(result)
Run Code Online (Sandbox Code Playgroud)
到
def v2_runner_on_ok(self, result):
pass
Run Code Online (Sandbox Code Playgroud)
正如Konstantin Suvorov指出的,上述ansible.cfg配置方法适用于ansible-playbook.
对于ansible输出,您可以另存actionable.py为./callback_plugins/minimal.py以获得相同的结果。
| 归档时间: |
|
| 查看次数: |
4859 次 |
| 最近记录: |