Mostrar todos los grupos en los que se encuentra un host en un inventario ansible

Mostrar todos los grupos en los que se encuentra un host en un inventario ansible

Tengo un conjunto de libros de jugadas ansible (v2.9.11) con alrededor de 80 servidores, que hacen varias cosas diferentes. Estoy intentando estructurar las cosas en grupos, con subgrupos.

¿Es posible ver fácilmente todos los grupos a los que pertenece un anfitrión? Especialmente si me muestra la jerarquía, como en "El host H₁ está en el grupo G₁, que es un grupo secundario del grupo G₂".

Respuesta1

variable especial group_namesmantiene"Lista de grupos de los que forma parte el anfitrión actual". No hay información sobre la jerarquía de los grupos disponible en Ansible.

Respuesta2

Basado en la inspiración dehttps://unix.stackexchange.com/a/706901/106012, se me ocurrió esta solución para enumerar los grupos de un host en particular:

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

Esto no tiene en cuenta los grupos anidados, pero funciona para la estructura de grupo plano en mi pequeña instalación ansible. Estoy seguro de que alguien con mejores jqhabilidades que yo podría solucionar esta deficiencia.

información relacionada