サーバー変数に基づいてAnsibleインベントリを構築する[閉じる]

サーバー変数に基づいてAnsibleインベントリを構築する[閉じる]

信頼できる在庫を構築し、クライアントから収集された値に基づいてホストを適切なグループに割り当てたいと思います。

たとえば、すべてのクライアントとそのグループに関する情報は、次の形式で夜間Ansibleサーバーにプッシュされます。

ファイル形式

Hostgroup1,Hostname1
Hostgroup1,Hostname2
Hostgroup1,Hostname3
Hostgroup2,Hostname1
Hostgroup2,Hostname2

上記のファイルの内容に基づいてAnsible Inventoryを作成する必要があります。

答え1

ここで利用可能ないくつかのオプションがあります。

1)これらのファイルをインポートし、Ansibleが使用する「インベントリファイル」形式を生成するスクリプトを作成します。その後、すべてのアップロードが完了したら、cronジョブまたは他のジョブでスクリプトを実行します。

2) 次の形式で出力を生成するスクリプトを作成します。AnsibleインベントリJSON形式、次のように使用します。https://docs.ansible.com/ansible/2.5/plugins/inventory/script.html

3) 使用add_hostプレイブックの最初の仕事である仕事の種類(localhostホストと)ループを使用してホストを追加します。

add_host:
  name: "{{ item.hostname }}"
  groups: "{{ item.group }}"
with_items: "{{ somehow inject your list here }}"

関連情報