第18章 インベントリー


Red Hat Ansible Automation Platform は、インベントリーファイルを使用して、論理的に編成されたインフラストラクチャー内の管理対象ノードまたはホストのリストに対して機能します。Red Hat Ansible Automation Platform インストーラーインベントリーファイルを使用して、インストールシナリオを指定し、Ansible へのホストのデプロイを説明できます。インベントリーファイルを使用することで、Ansible は単一のコマンドで多数のホストを管理できます。インベントリーは、指定する必要があるコマンドラインオプションの数を減らすことで、Ansible をより効率的に使用するのにも役立ちます。インベントリーはグループに分割されており、これらのグループにはホストが含まれます。

グループは、Automation Controller にホスト名を入力して手動で取得することも、サポートされているクラウドプロバイダーの 1 つから取得することもできます。

注記

カスタム動的インベントリースクリプト、または Automation controller でまだネイティブにサポートされていないクラウドプロバイダーがある場合は、それを Automation controller にインポートすることもできます。

詳細は、Automation controller 管理ガイドインベントリーファイルのインポート を参照してください。

ナビゲーションパネルから、Resources Inventories を選択します。Inventories ウィンドウには、現在使用可能なインベントリーのリストが表示されます。インベントリーリストは、NameType、または Organization で並べ替えることができます。

Inventories - home

Inventory details ページには次の内容が含まれます。

  • Name: インベントリー名。
  • Status

ステータスは以下のとおりです。

  • Success: インベントリーソースの同期が正常に完了した時
  • Disabled: インベントリーに追加されたインベントリーソースがない
  • Error: インベントリーソースの同期がエラーを出して完了する場合

    • Type: 標準インベントリー、スマートインベントリー、構築インベントリーのいずれであるかを識別します。
    • Organization: インベントリーが属する組織。
    • Actions: 以下のアクションを選択したインベントリーについて実行できます。
  • Edit ( Edit ): 選択したインベントリーのプロパティーを編集します。
  • Copy Copy : 新しいインベントリーの作成用のテンプレートとして、既存のインベントリーのコピーを作成します。

インベントリー名をクリックすると、選択したインベントリーの Details ページが表示され、インベントリーのグループとホストが表示されます。

18.1. スマートインベントリー

スマートインベントリーは、保存された検索によって定義されたホストのコレクションであり、標準インベントリーと同様に表示でき、ジョブの実行で簡単に使用できます。組織管理者は組織内のインベントリーに対する管理者パーミッションを持っており、スマートインベントリーを作成できます。

スマートインベントリーは、KIND=smart で識別されます。

検索で使用されているのと同じ方法を使用して、スマートインベントリーを定義できます。InventorySource はインベントリーに直接関連付けられます。

注記

スマートインベントリーは非推奨となり、今後のリリースでは削除される予定です。機能の拡張と置き換えのために、構築型インベントリーへの移行を検討してください。

Inventory モデルには、デフォルトで空白にされる以下の新規フィールドがありますが、スマートインベントリーについては以下のように設定されます。

  • スマートインベントリーの場合、Inventorysmart に設定される
  • スマートインベントリーの場合、host_filter が設定され、kindsmart に設定される

ホスト モデルには、ホストが関連付けられているすべてのスマートインベントリーのセットを識別する関連エンドポイント、smart_inventories があります。メンバーシップテーブルは、スマートインベントリーに対してジョブが実行されるたびに更新されます。

注記

メンバーシップをさらに頻繁に更新するには、AWX_REBUILD_SMART_MEMBERSHIP ファイルベースの設定を True に変更します。(デフォルトは False です)。これにより、次のイベントが発生した場合にメンバーシップが更新されます。

  • 新規ホストが追加される
  • 既存ホストが変更される (更新または削除される)
  • 新規スマートインベントリーが追加される
  • 既存スマートインベントリーが変更される (更新または削除される)

編集できなくてもインベントリーを表示できます。

  • ホストおよびグループの名前はインベントリーソースの同期の結果として作成されます。
  • グループのレコードは編集したり、移動したりすることはできません。

通常のインベントリーの場合のように、スマートインベントリーホストエンドポイント (/inventories/N/hosts/) からホストを作成できません。スマートインベントリーの管理者には、名前、説明、変数などのフィールドを編集するパーミッションと、削除するパーミッションがありますが、スマートインベントリーに含まれるホスト (別のインベントリーでプライマリーメンバーシップを持つホスト) が左右されるため、host_filter を変更するパーミッションはありません。

host_filter は、スマートインベントリーの組織に含まれるインベントリーのホストにのみ適用されます。

host_filter を変更するには、インベントリーの組織の組織管理者である必要があります。組織管理者は、組織内のすべてのインベントリーに対する暗黙的な "admin" アクセス権を持っているため、組織管理者がまだ所有していないパーミッションが継承されるわけではありません。

スマートインベントリーの管理者は、他のユーザー (組織の管理者ではないユーザー) に、スマートインベントリーに対する「使用」や「アドホック」などのアクセス許可を付与できます。これらは、他の標準インベントリーと同様に、ロールで指定されたアクションを許可します。ただし、これはホスト (別のインベントリーに存在する) に特別なパーミッションを付与するものではありません。ホストへの直接読み取りパーミッションは割り当てられず、/#/hosts/ の下にある追加のホストを表示することも許可されませんが、スマートインベントリーホストリストの下にあるホストは表示できます。

状況によっては、以下のものを変更できます。

  • インベントリーソースを使用してインベントリーに手動で作成した新しいホスト。
  • インベントリーソースの同期の結果として作成されたグループ。
  • ホストとグループの変数は、ローカルシステム管理者であっても変更できません。

スマートインベントリーに関連付けられたホストは表示される際に明示されます。スマートインベントリーの結果に同じホスト名を持つ複数のホストが含まれる場合、一致するホストの 1 つのみがスマートインベントリーの一部として組み込まれ、ホスト ID 別に並べ替えられます。

18.1.1. スマートホストフィルター

検索フィルターを使用して、インベントリーのホストを入力できます。この機能はファクト検索機能を使用します。

Automation Controller は、ジョブテンプレート別に use_fact_cache=True が設定されるたびに、ジョブテンプレートを実行中に Ansible Playbook で生成されたファクトをデータベースに保存します。新しいファクトはホスト別となっており、既存のファクトとマージされます。これらの保存されたファクトは、GET クエリーパラメーター host_filter を使用して /api/v2/hosts エンドポイントでホストをフィルター処理するために使用できます。

以下に例を示します。

/api/v2/hosts?host_filter=ansible_facts__ansible_processor_vcpus=8
Copy to Clipboard Toggle word wrap

host_filter パラメーターでは次のことが許可されます。

  • () でのグループ化
  • ブール値および演算子の使用:

    • __ 関連付けられたフィールドの関連フィールドを参照します。
    • __ JSON キーパスでキーを分離するために ansible_facts で使用されます。
    • `[] パスの指定で json アレイを表すために使用されます。
    • "" 値にスペースが必要な場合は、その値に使用されます。
  • 「標準的」な Django クエリーを host_filter に組み込むことができる

例:

/api/v2/hosts/?host_filter=name=localhost
/api/v2/hosts/?host_filter=ansible_facts__ansible_date_time__weekday_number="3"
/api/v2/hosts/?host_filter=ansible_facts__ansible_processor[]="GenuineIntel"
/api/v2/hosts/?host_filter=ansible_facts__ansible_lo__ipv6[]__scope="host"
/api/v2/hosts/?host_filter=ansible_facts__ansible_processor_vcpus=8
/api/v2/hosts/?host_filter=ansible_facts__ansible_env__PYTHONUNBUFFERED="true"
/api/v2/hosts/?host_filter=(name=localhost or name=database) and (groups__name=east or groups__name="west coast") and ansible_facts__an
Copy to Clipboard Toggle word wrap

host_filter は、ホスト名グループ名、および Ansible ファクト 別に検索できます。

グループ検索の形式は次のとおりです。

groups.name:groupA
Copy to Clipboard Toggle word wrap

ファクト検索の形式は次のとおりです。

ansible_facts.ansible_fips:false
Copy to Clipboard Toggle word wrap

また、ホスト名とホストの説明で構成されるスマート検索の検索を実行することもできます。

host_filter=name=my_host
Copy to Clipboard Toggle word wrap
注記

host_filter の検索語が文字列型の場合、数値 (例: 2.66) または JSON キーワード (例: nulltrue、または false) の値を有効にするには、値の前後に二重引用符を追加して、コントローラーが検索語を二重引用符で囲み、非文字列として解析されないようにします。

host_filter=ansible_facts__packages__dnsmasq[]__version="2.66"
Copy to Clipboard Toggle word wrap

18.1.2. ansible_facts を使用したホストフィルターの定義

スマートインベントリーの作成時に ansible_facts を使用してホストフィルターを定義するには、次の手順を実行します。

手順

  1. ナビゲーションパネルから、Resources Inventories を選択します。
  2. Add リストから Add Smart Inventory を選択します。
  3. Create new smart inventory ページで、 Search Smart host filter フィールドのアイコンをクリックします。これにより、このインベントリーのホストをフィルタリングするためのウィンドウが開きます。

    Dfine host filter

  4. 検索メニューで、検索基準を Name から Advanced に変更し、Key フィールドから ansible_facts を選択します。

    Define host filter facts

    次の Ansible fact を追加する場合:

    /api/v2/hosts/?host_filter=ansible_facts__ansible_processor[]="GenuineIntel"
    Copy to Clipboard Toggle word wrap

    検索フィールドに ansible_processor[]="GenuineIntel" と入力し (値の前に余分なスペースや __ はなし)、Enter をクリックします。

    image

    指定した Ansible fact の検索条件が表示されます。

    正規表現変数でフィルタリングするには、ansible.builtin.regex_search filter のドキュメントと、ナレッジベースのソリューション記事 How to filter hosts not having a particular variable name using regex when creating Smart Inventory を参照してください。

  1. Select をクリックして、Smart host filter フィールドに追加します。
  2. Save をクリックします。
  3. 新規スマートインベントリーの Details タブが開き、Smart host filter フィールドに指定した Ansible ファクトが表示されます。
  4. Details ビューで、Edit をクリックして Smart host filter フィールドを編集することや、既存フィルターの削除、すべての既存フィルターの消去、新しいフィルターの追加が可能です。

    image

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る