我有一組 ansible (v2.9.11) 劇本,包含大約 80 台伺服器,執行各種不同的操作。我正在嘗試將事物分成組和子組。
是否可以輕鬆查看主機所屬的所有群組?特別是如果它向我顯示層次結構,如“主機 H₁ 位於組 G₁ 中,組 G₁ 是組 G2 的子組”
答案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
比我更有能力的人可以彌補這個缺陷。