信頼できる在庫を構築し、クライアントから収集された値に基づいてホストを適切なグループに割り当てたいと思います。
たとえば、すべてのクライアントとそのグループに関する情報は、次の形式で夜間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 }}"