用Ansible显示输出

我有一个PGBouncer Ansible播放 ,显示内置于PGBouncer的统计模块的一些输出。

我的问题是,当Ansible将输出打印到terminal时,会损坏换行符。 而不是看到

---------- | OUTPUT | ---------- 

我懂了

 ----------\n| OUTPUT |\n---------- 

有谁知道如何让Ansible“漂亮的打印”输出?

在Ansible中没有办法做到你想要的东西。 你可以做这个解决方法:

 ansible-playbook ... | sed 's/\\n/\n/g' 

你可以使用一个callback插件 。 这将重新parsing你的输出,很容易打开和closures。

如果你想要更人性化的输出定义:

 ANSIBLE_STDOUT_CALLBACK=debug 

这将使得debugging输出模块(之前称为human_log尽pipe不幸的名字不那么冗长,并且更容易被人读取, 但它仍然是可靠的。

如果您遇到此模块不可用的错误,请升级Ansible或在本地添加此模块(如果无法升级),则可以使用超过2.0的版本,甚至1.9。

另一个选项是将stdout_callback = debug添加到你的ansible.cfg中

在Ansible项目组论坛中find了这种方式:

 - name: "Example test" command: ... register: test - name: "Example test stdout" debug: msg: "{{ test.stdout.split('\n') }}" - name: "Example test stderr" debug: msg: "{{ test.stderr.split('\n') }}" 

我们基本上通过将它拆分为新行然后打印该列表来将其变成列表。