Ansibleインベントリでホストが属するすべてのグループを表示する

Ansibleインベントリでホストが属するすべてのグループを表示する

私は、約 80 台のサーバーでさまざまなことを実行する Ansible (v2.9.11) のプレイブック セットを持っています。サブグループを使用して、物事をグループに構造化しようとしています。

ホストがメンバーになっているすべてのグループを簡単に確認することは可能ですか? 特に、「ホスト H₁ はグループ 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私よりも優れた能力を持つ誰かがこの欠陥を修正できると確信しています。

関連情報