Я хотел бы отфильтровать вывод JSON для ad-hoc-совместимых команд - например, возьмите длинный список «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)
Есть ли способ фильтровать ключи JSON до выхода ut отображается?
Спасибо! Работает хорошо. –