在 ansible 清單中顯示主機所在的所有群組

在 ansible 清單中顯示主機所在的所有群組

我有一組 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比我更有能力的人可以彌補這個缺陷。

相關內容