当我运行剧本时,我会以所需的正确json格式获取调试输出
"ansible_facts": {
"routes": [
{
"subnet": "10.0.0.0/24"
},
{
"subnet": "10.0.1.0/24"
}
]
},
但是当我使用local_action指令将其导出到文件时,它显示如下
[{"subnet": "10.0.0.0/24"}, {"subnet": "10.0.1.0/24"}
是否有任何可用的漂亮打印模块或Ansible中的打印模块,它们的输出方式与我在调试消息中看到的方式相同?
谢谢!
答案 0 :(得分:0)
并非完全是您在屏幕上看到的输出,但是在将变量通过template
过滤器后,可以使用to_nice_json
任务来打印变量。示例:
---
- hosts: localhost
gather_facts: false
vars:
my_ansible_facts:
routes:
- subnet: 10.0.0.0/24
- subnet: 10.0.1.0/24
tasks:
- template: src=nice_yaml_filter.j2 dest=/tmp/nice_yaml_filter.out
请注意,我使用的变量与您使用的变量不同,只是我填充的my_ansible_facts
变量。
模板文件的内容nice_yaml_filter.j2
:
{{ my_ansible_facts | to_nice_json }}
结果:
[http_offline@greenhat-32 ANSIBLE_TESTS]$ cat /tmp/nice_yaml_filter.out
{
"routes": [
{
"subnet": "10.0.0.0/24"
},
{
"subnet": "10.0.1.0/24"
}
]
}[http_offline@greenhat-32 ANSIBLE_TESTS]$
欢呼