ansible playbook中的清除错误输出
如果任何Ansible任务失败,则有错误输出,playbook将显示它换行符“\n”。对于跨越多行的回溯,这使得阅读非常困难 有没有一种方法可以使ansible playbook显示来自ansible playbook中的清除错误输出,ansible,ansible-playbook,Ansible,Ansible Playbook,如果任何Ansible任务失败,则有错误输出,playbook将显示它换行符“\n”。对于跨越多行的回溯,这使得阅读非常困难 有没有一种方法可以使ansible playbook显示来自shell、pip、git和其他类似任务的未跳过的错误输出? 回调是一种更有趣的插件类型。向Ansible添加其他回调插件允许在响应事件时添加新行为 .如果它用于任何特定任务,则可以使用调试模块。要查看shell或任何命令的输出,请首先使用以下命令将其注册到变量中: .... register: shell_ou
shell
、pip
、git
和其他类似任务的未跳过的错误输出?
回调是一种更有趣的插件类型。向Ansible添加其他回调插件允许在响应事件时添加新行为
.如果它用于任何特定任务,则可以使用
调试
模块。要查看shell或任何命令的输出,请首先使用以下命令将其注册到变量中:
....
register: shell_output
- name: View Clear Output
debug:
var: shell_output
这个输出也可以用json解析。使用shell\u output\u to_json
在文件的默认值部分添加stdout\u callback=debug和stderr\u callback=debug
ansible>2.0支持这一点。下面是一个快速而肮脏的修复程序
echo -en "$(<some ansible command>)"
echo-en“$()”
YAML输出从Ansible 2.5开始提供
在以下内容的[defaults]
部分中添加这些行:
如果你习惯了默认输出,这将改变你的生活
其中,
minimal
和debug
也提供了很好的JSON输出。Ansible确实考虑了stdout\u回调
,并且可以使用一个受支持的插件(可以使用Ansible doc-t callback-l
列出)
尽管
stderr\u回调
似乎不再受支持。我找不到为OUT和ERR单独输出的方法。请注意,您可能需要或最新版本的Ansible。这太不可思议了!为什么这不是默认值!?我的stdout以\t
结尾。我在ansible 2.6.2上尝试了这个配置。但我看不出有什么不同。我有什么遗漏吗?我什么都没得到:(什么是stderr\u callback
?它不在v2.9的源代码和文档中。我发现debug
选项在没有中断的情况下会抛出大量多余的空白,特别是对于调试语句。设置yaml
可以提供无需空白即可轻松阅读的格式。
echo -en "$(<some ansible command>)"
stdout_callback = yaml
stderr_callback = yaml