Mostrar todos os grupos em que um host está em um inventário ansible

Mostrar todos os grupos em que um host está em um inventário ansible

Eu tenho um conjunto de manuais ansible (v2.9.11) com cerca de 80 servidores, fazendo várias coisas diferentes. Estou tentando estruturar as coisas em grupos, com subgrupos.

É possível ver facilmente todos os grupos dos quais um host é membro? Principalmente se me mostrar a hierarquia, como em "O host H₁ está no grupo G₁, que é um grupo filho do grupo G₂"

Responder1

Variável especial group_namesmantém"Lista de grupos dos quais o host atual faz parte". Não há informações sobre a hierarquia dos grupos disponíveis no Ansible.

Responder2

Baseado na inspiração dehttps://unix.stackexchange.com/a/706901/106012, criei esta solução para listar os grupos de um host específico:

ansible-inventory --list | jq -r 'map_values(select(.hosts != null and (.hosts | contains(["myhost"])))) | keys[]'

Isso não leva em consideração grupos aninhados, mas funciona para a estrutura de grupo simples em minha pequena instalação ansible. Tenho certeza de que alguém com jqhabilidades melhores do que eu poderia consertar essa deficiência.

informação relacionada