有没有办法使用 Ansible 打印出简单的表格样式输出。我已经将需要的值注册到剧本中的一个变量中,我只是想更干净地打印出来。目前,我使用 stdout.lines 的输出如下所示:
ok: [sage] => {
"voutput.stdout_lines": [
"4.4.5"
]
}
ok: [example] => {
"voutput.stdout_lines": [
"4.7"
]
}
但如果我能将它的格式改得更像这样就更好了:
sage 4.7
example 4.4.5
somethingelse 1.2.3
有没有办法直接在 Ansible 中做这些事情,或者我只需要获取它给出的输出并使用 AWK 之类的东西对其进行转换?
答案1
您可以使用标准 json 输出回调并获取所需数据杰奇。
主办方:
[test]
srv1 testvar=abc
srv2 testvar=zzzzzz
srv3 testvar=qqqq
剧本.yml:
- hosts: test
gather_facts: no
tasks:
- debug: var=testvar
执行:
$ ANSIBLE_STDOUT_CALLBACK=json ansible-playbook playbook.yml | jq -r '.plays[0].tasks[0].hosts | to_entries[] | "\(.key), \(.value.testvar)"'
srv1, abc
srv2, zzzzzz
srv3, qqqq