Ansible 인벤토리에 호스트가 속한 모든 그룹 표시

Ansible 인벤토리에 호스트가 속한 모든 그룹 표시

나는 다양한 작업을 수행하는 약 80개의 서버를 갖춘 ansible(v2.9.11) 플레이북 세트를 가지고 있습니다. 나는 하위 그룹을 사용하여 사물을 그룹으로 구성하려고 노력하고 있습니다.

호스트가 속한 모든 그룹을 쉽게 볼 수 있나요? 특히 "호스트 H₁는 그룹 G2의 하위 그룹인 그룹 G₁에 속해 있습니다"와 같이 계층 구조를 보여주는 경우

답변1

특수변수 group_names유지하다"현재 호스트가 속한 그룹 목록". Ansible에는 그룹 계층 구조에 대한 정보가 없습니다.

답변2

영감을 바탕으로https://unix.stackexchange.com/a/706901/106012, 특정 호스트에 대한 그룹을 나열하기 위해 다음 솔루션을 생각해 냈습니다.

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

이것은 중첩된 그룹을 고려하지 않지만 작은 Ansible 설치의 플랫 그룹 구조에서는 작동합니다. jq나보다 더 나은 기술을 가진 누군가가 이 결핍을 고칠 수 있을 것이라고 확신합니다 .

관련 정보