我有一套 ansible (v2.9.11) 剧本,其中有大约 80 台服务器,可以执行各种不同的任务。我尝试将事物划分为组,并设置子组。
是否可以轻松查看主机所属的所有组?特别是如果它显示层次结构,例如“主机 H₁ 位于组 G₁ 中,而组 G₁ 是组 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
比我更厉害的人可以解决这个问题。