如果任何Ansible任务失败,则会出现错误输出,Playbook将显示转义的换行符'\ n'。对于追溯,跨越多行,这使得它很难阅读。
有没有办法让ansible-playbook显示来自shell
,pip
,git
and等其他类似任务的非转义错误输出?
在ansible.cfg文件的defaults部分添加stdout_callback = debug和stderr_callback = debug。
[defaults]
(...)
stdout_callback=debug
stderr_callback=debug
这是由ansible> 2.0支持的
Ansible Callbacks回调是更有趣的插件类型之一。向Ansible添加额外的回调插件允许在响应事件时添加新行为。
Human-Readable Ansible Playbook Log Output Using Callback Plugin。
如果是针对任何特定任务,可以使用debug
模块。要查看shell或任何命令的输出,首先使用以下命令在变量中注册它:
....
register: shell_output
- name: View Clear Output
debug:
var: shell_output
此输出也可以在json中解析。使用shell_output_to_json
。
快速而肮脏的修复如下
echo -en "$(<some ansible command>)"