1.6. インストーラーインベントリーファイルについて


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

インベントリーファイルは、所有するインベントリープラグインに応じて、多数ある形式のいずれかになります。最も一般的な形式は INIYAML です。このドキュメントに記載されているインベントリーファイルは、INI 形式で示されています。

インベントリーファイルの場所は、使用したインストーラーによって異なります。次の表に、可能な場所を示します。

Expand
インストーラーロケーション

Bundle tar

/ansible-automation-platform-setup-bundle-<latest-version>

Non-bundle tar

/ansible-automation-platform-setup-<latest-version>

RPM

/opt/ansible-automation-platform/installer

次のコマンドを使用して、インベントリー内のホストを確認できます。

ansible all -i <path-to-inventory-file. --list-hosts
Copy to Clipboard Toggle word wrap

インベントリーファイルの例

[automationcontroller]
host1.example.com
host2.example.com
Host4.example.com

[automationhub]
host3.example.com

[database]
Host5.example.com

[all:vars]
admin_password='<password>'

pg_host=''
pg_port=''

pg_database='awx'
pg_username='awx'
pg_password='<password>'

registry_url='registry.redhat.io'
registry_username='<registry username>'
registry_password='<registry password>'
Copy to Clipboard Toggle word wrap

インベントリーファイルの最初の部分は、Ansible が使用できるホストまたはグループを指定します。

1.6.1. ホストとグループのガイドライン

データベース

  • 外部データベースを使用する場合は、インベントリーファイルの database セクションが正しく設定されていることを確認してください。
  • パフォーマンスを向上させるために、データベースと Automation Controller を同じサーバーに配置しないでください。

Automation Hub

  • [automationhub] グループに Ansible Automation Hub 情報を追加します。
  • Ansible Automation Hub と Automation Controller を同じノードにインストールしないでください。
  • [automationhub] ホストに到達可能な IP アドレスまたは完全修飾ドメイン名 (FQDN) を提供して、ユーザーが別のノードから Ansible Automation Hub のコンテンツを同期してインストールできるようにします。localhost は使用しないでください。
重要

Automation Controller と Ansible Automation Hub を別々にインストールする必要があります。両方が同時にインストールされている場合、[database] グループは 2 つを区別しないからです。

[database] で 1 つの値を使用し、Automation Controller と Ansible Automation Hub の両方がそれを定義する場合、それらは同じデータベースを使用します。

Automation Controller

  • Automation Controller は、使用するデータベースのレプリケーションまたはフェイルオーバーを設定しません。Automation Controller は、所有しているすべてのレプリケーションで機能します。

クラスター化されたインストール

  • 既存のクラスターをアップグレードする場合は、既存のインスタンスまたはインスタンスグループを省略するようにクラスターを再設定することもできます。インスタンスまたはインスタンスグループをインベントリーファイルから省略するだけでは、クラスターから削除するには不十分です。インベントリーファイルからインスタンスまたはインスタンスグループを除外するほかに、アップグレードを開始する前にインスタンスまたはインスタンスグループのプロビジョニングを解除する必要もあります。ノードまたはグループのプロビジョニング解除 を参照してください。そうしないと、省略されたインスタンスまたはインスタンスグループが引き続きクラスターと通信するため、アップグレード中に Automation Controller サービスで問題が発生する可能性があります。
  • クラスター化されたインストールセットアップを作成している場合は、[localhost] をすべてのインスタンスのホスト名または IP アドレスに置き換える必要があります。Automation Controller、Automation Hub、および自動化サービスカタログのインストーラーは [localhost] を受け入れません。すべてのノードとインスタンスは、このホスト名またはアドレスを使用して他のノードに到達できる必要があります。いずれかのノードで localhost ansible_connection=local を使用することはできません。すべてのノードのホスト名に同じ形式を使用します。

    したがって、これは機能しません。

    [automationhub]
    localhost ansible_connection=local
    hostA
    hostB.example.com
    172.27.0.4
    Copy to Clipboard Toggle word wrap

    代わりに以下の形式を使用します。

    [automationhub]
    hostA
    hostB
    hostC
    Copy to Clipboard Toggle word wrap

    または

    [automationhub]
    hostA.example.com
    hostB.example.com
    hostC.example.com
    Copy to Clipboard Toggle word wrap

1.6.2. ノードまたはグループのプロビジョニング解除

Ansible Automation Platform インストーラーを使用して、ノードとインスタンスグループのプロビジョニングを解除できます。インストーラーを実行すると、グループ内のノードに割り当てられたすべての設定ファイルおよびログが削除されます。

注記

[automationcontroller] グループで指定されている最初のホストを除き、インベントリーの任意のホストのプロビジョニングを解除することができます。

ノードのプロビジョニングを解除するには、インベントリーファイル内のノードまたはグループに node_state=deprovision を追加します。

以下に例を示します。

デプロイメントから単一のノードを削除するには、以下を実行します。

[automationcontroller]
host1.example.com
host2.example.com
host4.example.com   node_state=deprovision
Copy to Clipboard Toggle word wrap

または

デプロイからインスタンスグループ全体を削除するには、以下を実行します。

[instance_group_restrictedzone]
host4.example.com
host5.example.com

[instance_group_restrictedzone:vars]
node_state=deprovision
Copy to Clipboard Toggle word wrap

1.6.3. インベントリー変数

サンプルインベントリーファイルの [all:vars] に続く 2 番目の部分は、インストーラーによって使用される変数のリストです。all を使用すると、変数がすべてのホストに適用されます。

特定のホストに変数を適用するには、[hostname:vars] を使用します。たとえば、[automationhub:vars] です。

1.6.4. インベントリーファイルで変数を宣言するためのルール

文字列変数の値は、引用符で囲んで宣言します。以下に例を示します。

pg_database='awx'
pg_username='awx'
pg_password='<password>'
Copy to Clipboard Toggle word wrap

:vars セクションで宣言すると、INI 値は文字列として解釈されます。たとえば、var=FALSEFALSE に等しい文字列を作成します。ホスト行とは異なり、:vars セクションは行ごとに 1 つのエントリーのみを受け入れるため、= の後のすべてがエントリーの値である必要があります。ホスト行は、行ごとに複数の key=value パラメーターを受け入れます。したがって、スペースがセパレーターではなく値の一部であることを示す方法が必要です。空白を含む値は引用符で囲むことができます (一重または二重)。詳細は、Python shlex parsing rules を参照してください。

INI インベントリーに設定された変数値が特定の型 (文字列やブール値など) でなければならない場合は、常にタスクでフィルターを使用して型を指定します。変数を使用するときは、INI インベントリーで設定されたタイプに依存しないでください。

注記

変数の実際の型に関する混乱を避けるために、インベントリーソースに YAML 形式を使用することを検討してください。YAML インベントリープラグインは、変数値を一貫して正しく処理します。

Ansible インベントリーファイルのパラメーター値に、#、{ または } などの特殊文字が含まれている場合は、値をダブルエスケープ (double-escape) する必要があります (値を単一と二重引用符で囲みます)。

たとえば、mypasswordwith#hashsigns を変数 pg_password の値として使用するには、Ansible ホストインベントリーファイルで pg_password='"mypasswordwith#hashsigns"' として宣言します。

1.6.5. インベントリーファイルでシークレットを保護する

Ansible Vault を使用して機密変数または秘密変数を暗号化できます。ただし、変数名と変数値を暗号化すると、値のソースを見つけるのが難しくなります。これを回避するには、ansible-vault encrypt_string を使用して変数を個別に暗号化するか、変数を含むファイルを暗号化します。

手順

  1. 暗号化された認証情報を保存するために、credentials.yml というラベルの付いたファイルを作成します。

    $ cat credentials.yml
    
    admin_password: my_long_admin_pw
    pg_password: my_long_pg_pw
    registry_password: my_long_registry_pw
    Copy to Clipboard Toggle word wrap
  2. ansible-vault を使用して credentials.yml ファイルを暗号化します。

    $ ansible-vault encrypt credentials.yml
    New Vault password:
    Confirm New Vault password:
    Encryption successful
    Copy to Clipboard Toggle word wrap
    重要

    暗号化された vault パスワードを安全な場所に保管します。

  3. credentials.yml ファイルが暗号化されていることを確認します。

    $ cat credentials.yml
    $ANSIBLE_VAULT;1.1;
    AES256363836396535623865343163333339613833363064653364656138313534353135303764646165393765393063303065323466663330646232363065316666310a373062303133376339633831303033343135343839626136323037616366326239326530623438396136396536356433656162333133653636616639313864300a353239373433313339613465326339313035633565353464356538653631633464343835346432376638623533613666326136343332313163343639393964613265616433363430633534303935646264633034383966336232303365383763
    Copy to Clipboard Toggle word wrap
  4. Ansible Automation Platform 2.2 のインストールのために setup.sh を実行し、credentials.yml--ask-vault-pass オプション の両方を渡します。

    $ ANSIBLE_BECOME_METHOD='sudo' ANSIBLE_BECOME=True ANSIBLE_HOST_KEY_CHECKING=False ./setup.sh -e @credentials.yml -- --ask-vault-pass
    Copy to Clipboard Toggle word wrap

1.6.6. 追加のインベントリーファイル変数

インベントリーファイルに追加変数を追加して、Red Hat Ansible Automation Platform インストールをさらに設定できます。これらの設定では、Red Hat Ansible Automation Platform 管理用のオプション機能を追加します。テキストエディターでインベントリーファイルを編集して、これらの変数を追加します。

インベントリーファイル変数の定義済み値の表は、付録 A: インベントリーファイル変数 にあります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat