Comando ad-hoc ansible filtrar a saída JSON por chave ou propriedade
Gostaria de filtrar a saída JSON de comandos ad-hoc ansible - por exemplo, pegue a longa lista de "fatos"para vários hosts e mostre apenas um que possa ter vários níveis de profundidade, comoansible_lsb.description
, para que eu possa comparar rapidamente quais versões de software estão executando, verificar horários ou fusos horários precisos, qualquer que seja.
Isso funciona:
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
}
No entanto, como odocumentos do módulo de configuração state ", a opção de filtro filtra apenas a subchave de primeiro nível abaixo de ansible_facts"; portanto, isso falha:
ansible myserver -m setup -a 'filter=ansible_lsb.description'
myserver | SUCCESS => {
"ansible_facts": {},
"changed": false
}
(embora, para referência, você possa usar a notação de ponto em outros lugares, como osquando condicional)
Existe uma maneira de filtrar as chaves JSON antes que a saída seja exibida?