ホームページ >システムチュートリアル >Linux >Ansible 動的インベントリの概要

Ansible 動的インベントリの概要

王林
王林オリジナル
2024-08-24 10:44:02924ブラウズ

Ansible インベントリは、実際には、静的インベントリと動的インベントリの 2 つの部分で構成されます。静的インベントリは、ファイル /etc/ansible/hosts で指定されたホストとグループを指し、動的インベントリは、外部スクリプトを通じてホストのリストを取得し、次の要件に従います。 ansible ansilbe コマンドに返される形式。この部分は通常、CMDB資産管理システム、zabbix監視システム、crobbleインストールシステム、クラウドコンピューティングプラットフォームなどを組み合わせてホスト情報を取得します。通常、ホスト リソースは動的に増減するため、これらのシステムは通常、インテリジェントに更新されます。これらのツールが提供する API を介してホスト リストを返すか、ライブラリ クエリにアクセスできます。

1. 最も単純な例

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. 複雑な例
静的ホスト構成ファイルの例では、以下に示すように、グループ間を含むグループ変数 (vars) が存在します。

上記の部分が必要な場合は、スクリプトを通じて実装を取得します。実装後に返される JSON 形式は次のようになります。 Ansible Dynamic Inventory 介绍

上記のような複雑な戻り形式は、通常、アドホック環境では使用されません。これは、Playbook ファイルに vars パラメーターの受け渡しが含まれる場合があるためです。

Ansible Dynamic Inventory 介绍

3. サードパーティのプラットフォームからホストの例を取得します

これは、この記事の冒頭で述べたように、cobbler や cmdb などのプラットフォームから例を取得しました。 ansible のイニシエーター (作者) は cobbler ソフトウェアの作成者でもあるため、公式ドキュメントには cobbler の例と AWS からホスト情報を取得する例が示されています。以下の通り: cobblerでホスト情報コードを取得

AWSクラウド上のホスト情報コードを取得

AWS からホスト情報を取得してデータベースに格納する方法については、以前に関連する章を書きました。詳細については、以前のブログ投稿「AWS Host Asset Management」も参照してください (この記事も純粋な Python で実装されています)。 )。

zabbix api を介してホスト情報を取得する zabbix の概要 (8) Zabbix api も書きました。zabbix プラットフォームを介してホストのリスト情報を取得したい場合は、こちらも参照してください。

4. その他

1. ansible -i パラメーターの後に呼び出されるスクリプトは必ずしも py ファイルであるとは限りません、他のスクリプトの出力結果である場合もあります。これは簡単なテストです:
リーリー

2. -i パラメータで指定されたスクリプトには実行権限が必要です。そうでない場合は、次のようなエラーが報告されます:

リーリー

以上がAnsible 動的インベントリの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。