Ansible ad-hoc команда фильтра вывода JSON по ключу или свойству
Я хотел бы отфильтровать вывод JSON для специальных команд ANSIBLE - например, захватить длинный списокфакты"для нескольких хостов и показывать только один, который может иметь глубину в несколько уровней, напримерansible_lsb.description
так что я могу быстро сравнить, какие версии программного обеспечения они используют, проверить точное время или часовой пояс, что угодно.
Это работает:
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
}
Тем не менее, какмодуль настройки документов состояние, "опция фильтра фильтрует только подраздел первого уровня ниже ansible_facts", так что это терпит неудачу:
ansible myserver -m setup -a 'filter=ansible_lsb.description'
myserver | SUCCESS => {
"ansible_facts": {},
"changed": false
}
(хотя для справки, вы можете использовать точечные обозначения в других местах, таких как задачикогда условно)
Есть ли способ отфильтровать ключи JSON перед отображением вывода?