0
我想過濾ad-hoc命令的JSON輸出 - 例如,抓住多個主機的「facts」長列表,並且只顯示一個可能有幾個級別深度的列表,例如ansible_lsb.description
,這樣我就可以快速比較它們運行的軟件版本,檢查準確的時間或時區等等。Ansible ad-hoc命令過濾器通過鍵或屬性輸出JSON
這工作:
ansible myserver -m setup -a 'filter=ansible_lsb'
myserver | SUCCESS => {
"ansible_facts": {
"ansible_lsb": {
"codename": "wheezy",
"description": "Debian GNU/Linux 7.11 (wheezy)",
"id": "Debian",
"major_release": "7",
"release": "7.11"
}
},
"changed": false
}
然而,隨着setup module docs狀態, 「只有過濾選項過濾器下面ansible_facts第一級子項」,所以失敗:
ansible myserver -m setup -a 'filter=ansible_lsb.description'
myserver | SUCCESS => {
"ansible_facts": {},
"changed": false
}
(儘管參考,你可以在其他地方使用點符號,如任務的when conditional)
有沒有一種方法可以在outp之前過濾JSON密鑰ut顯示?
謝謝!效果很好。 –