在ansible-playbook中清除错误输出

时间:2016-05-11 19:45:45

标签: ansible ansible-playbook

如果任何Ansible任务失败,则输出错误,playbook将显示换行符'\ n'。对于追溯,跨越多行,这使得它很难阅读。

有没有办法让ansible-playbook显示来自shellpipgit以及其他类似任务的非转义错误输出?

6 个答案:

答案 0 :(得分:21)

ansible.cfg 文件的默认部分添加 stdout_callback = debug stderr_callback = debug

[defaults]
(...)
stdout_callback=debug
stderr_callback=debug

这是由ansible>支持的。 2.0

答案 1 :(得分:5)

YAML输出从Ansible 2.5开始可用。

将这些行添加到ansible.cfg[defaults]部分:

stdout_callback = yaml
stderr_callback = yaml

如果您习惯了默认输出,这将会改变您的生活!

other output optionsminimaldebug中也提供了不错的JSON输出。

答案 2 :(得分:4)

Ansible Callbacks 回调是更有趣的插件类型之一。向Ansible添加额外的回调插件允许在响应事件时添加新行为。

Human-Readable Ansible Playbook Log Output Using Callback Plugin

答案 3 :(得分:0)

如果是针对任何特定任务,可以使用debug模块。要查看shell或任何命令的输出,首先使用以下命令在变量中注册:

....
register: shell_output

- name: View Clear Output
  debug: 
    var: shell_output

此输出也可以在json中解析。使用shell_output_to_json

答案 4 :(得分:0)

以下是一种快速而肮脏的解决方法

echo -en "$(<some ansible command>)"

答案 5 :(得分:0)

Ansible确实关心stdout_callback,并且可以使用受支持的插件之一(可以使用ansible-doc -t callback -l列出)。

尽管stderr_callback似乎不再受支持。我找不到一种为OUT和ERR分别输出的方法。