我有一个用于 PGBouncer 的 Ansible 游戏,它显示了 PGBouncer 中内置的统计模块的一些输出。
我的问题是,当 Ansible 将输出打印到终端时,它会破坏换行符。而不是看到
----------
| OUTPUT |
----------
我懂了
----------\n| OUTPUT |\n----------
有谁知道如何让 Ansible “漂亮打印”输出?
我有一个用于 PGBouncer 的 Ansible 游戏,它显示了 PGBouncer 中内置的统计模块的一些输出。
我的问题是,当 Ansible 将输出打印到终端时,它会破坏换行符。而不是看到
----------
| OUTPUT |
----------
我懂了
----------\n| OUTPUT |\n----------
有谁知道如何让 Ansible “漂亮打印”输出?
如果您想要更人性化的输出,请定义:
这将使 ansible 使用调试输出模块(以前称为
human_log
)which,尽管它不幸的名称不那么冗长并且更容易被人类阅读。如果您收到此模块不可用的错误,请升级 Ansible 或在本地添加此模块,如果您无法升级 ansible,它将适用于 2.0 甚至 1.9 等更高版本的 ansible。
配置它的另一个选项是添加
stdout_callback = debug
到您的 ansible.cfg没有办法在 Ansible 中以原生方式做你想做的事。您可以这样做作为一种解决方法:
在 Ansible 项目组论坛中找到这种方式:
我们基本上通过换行符将其拆分然后打印该列表来将其转换为列表。
您可以使用回调插件。这将重新解析您的输出,并且很容易打开和关闭。
如果您想以几乎模仿标准输出的格式查看它,您可以使用
debug
回调插件和debug
Ansible 2.7+ 中的模块,如下所示:如果您不在并行主机上运行,则可以使用pause模块:
通过定义分钟或秒在没有输入的情况下继续前进,但随后不会捕获用户输入。
信用:https ://github.com/ansible/ansible/issues/17446#issuecomment-245391682
注意:在并行主机上,只会显示第一台主机的输出
尽管这不是一个具体的回应,但我在我的团队中遇到了同样的问题,我们已经实施了ara projet,它是一个开源软件,可以让 ansible 对人类友好。
您可以在此处查看现场演示。