ホームページ >システムチュートリアル >Linux >Ansible 動的インベントリの概要
Ansible インベントリは、実際には、静的インベントリと動的インベントリの 2 つの部分で構成されます。静的インベントリは、ファイル /etc/ansible/hosts で指定されたホストとグループを指し、動的インベントリは、外部スクリプトを通じてホストのリストを取得し、次の要件に従います。 ansible ansilbe コマンドに返される形式。この部分は通常、CMDB資産管理システム、zabbix監視システム、crobbleインストールシステム、クラウドコンピューティングプラットフォームなどを組み合わせてホスト情報を取得します。通常、ホスト リソースは動的に増減するため、これらのシステムは通常、インテリジェントに更新されます。これらのツールが提供する API を介してホスト リストを返すか、ライブラリ クエリにアクセスできます。
Ansible はホスト情報を動的に取得するスクリプトを受け入れるときに json 形式をサポートしているため、ここでは他のシステムからホスト情報を取得せず、コードの一部を通じてホスト情報を json 形式で出力します。 リーリー
注:1. ホスト部分はリスト形式である必要があります。
2. hostdata 行の「hosts」部分は省略できますが、使用する場合は「hosts」である必要があり、「hostlist」などの他の文字列は使用できません。
を省略した後は、次のように書くことができます:
リーリーこのコードを直接実行した結果は次のようになります:
リーリー上記では 2 つのホスト グループが定義されています。test1 グループにはホスト 10.212.52.252 と 10.212.52.14 が含まれ、test2 グループにはホスト 10.212.52.16 が含まれています。 ansible は次のメソッドを通じて呼び出すことができます:
リーリー 2. 複雑な例上記の部分が必要な場合は、スクリプトを通じて実装を取得します。実装後に返される JSON 形式は次のようになります。
上記のような複雑な戻り形式は、通常、アドホック環境では使用されません。これは、Playbook ファイルに vars パラメーターの受け渡しが含まれる場合があるためです。
3. サードパーティのプラットフォームからホストの例を取得します
AWSクラウド上のホスト情報コードを取得
AWS からホスト情報を取得してデータベースに格納する方法については、以前に関連する章を書きました。詳細については、以前のブログ投稿「AWS Host Asset Management」も参照してください (この記事も純粋な Python で実装されています)。 )。
zabbix api を介してホスト情報を取得する zabbix の概要 (8) Zabbix api も書きました。zabbix プラットフォームを介してホストのリスト情報を取得したい場合は、こちらも参照してください。
4. その他2. -i パラメータで指定されたスクリプトには実行権限が必要です。そうでない場合は、次のようなエラーが報告されます:
リーリー以上がAnsible 動的インベントリの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。