当我运行我的剧本时,我得到了正确的 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 中是否有任何可用的漂亮打印模块可以以与我在调试消息中看到的方式相同的方式导出我的文件?
谢谢!
不完全是您在屏幕上获得的输出,但您可以在通过
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]$
干杯