第8章 インストーラーインベントリーファイルについて
Red Hat Ansible Automation Platform は、インベントリーファイルを使用して、論理的に編成されたインフラストラクチャー内の管理対象ノードまたはホストのリストに対して機能します。Red Hat Ansible Automation Platform インストーラーインベントリーファイルを使用して、インストールシナリオを指定し、Ansible へのホストのデプロイについて説明できます。インベントリーファイルを使用することで、Ansible は単一のコマンドで多数のホストを管理できます。インベントリーは、指定する必要があるコマンドラインオプションの数を減らすことで、Ansible をより効率的に使用するのにも役立ちます。
インベントリーファイルは、所有するインベントリープラグインに応じて、多数ある形式のいずれかになります。最も一般的な形式は INI
と YAML
です。このドキュメントに記載されているインベントリーファイルは、INI 形式で示されています。
インベントリーファイルの場所は、使用したインストーラーによって異なります。次の表に、可能な場所を示します。
インストーラー | ロケーション |
---|---|
Bundle tar |
|
Non-bundle tar |
|
RPM |
|
次のコマンドを使用して、インベントリー内のホストを確認できます。
ansible all -i <path-to-inventory-file. --list-hosts
インベントリーファイルの例
[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>'
インベントリーファイルの最初の部分は、Ansible が使用できるホストまたはグループを指定します。
8.1. ホストとグループのガイドライン
データベース
-
外部データベースを使用する場合は、インベントリーファイルの
[database]
セクションが正しく設定されていることを確認してください。 - パフォーマンスを向上させるために、データベースと Automation Controller を同じサーバーに配置しないでください。
Automation Hub
-
[automationhub]
グループが存在する場合は、変数automationhub_pg_host
およびautomationhub_pg_port
を含める必要があります。 -
[automationhub]
グループに Ansible Automation Hub 情報を追加します。 - Ansible Automation Hub と Automation Controller を同じノードにインストールしないでください。
[automationhub]
および[automationcontroller]
ホストに到達可能な IP アドレスまたは完全修飾ドメイン名 (FQDN) を提供して、ユーザーが別のノードの Ansible Automation Hub および Automation Controller からコンテンツを同期してインストールできるようにします。FQDN には
-
記号または_
記号を含めることはできません。正しく処理されません。localhost
は使用しないでください。
Private Automation Hub
- Private Automation Hub と Automation Controller を同じノードにインストールしないでください。
- 同じ PostgreSQL (データベース) インスタンスを使用できますが、別の (データベース) 名を使用する必要があります。
- 内部アドレスから Private Automation Hub をインストールし、外部アドレスしか記載されていない証明書を使用している場合は、インストールして証明書の問題がなくてもコンテナーレジストリーとして使用できなくなる可能性があります。
Automation Controller と Ansible Automation Hub を別々にインストールする必要があります。両方が同時にインストールされている場合、[database]
グループは 2 つを区別しないからです。
[database]
で 1 つの値を使用し、Automation Controller と Ansible Automation Hub の両方がそれを定義する場合、それらは同じデータベースを使用します。
Automation Controller
- Automation Controller は、使用するデータベースのレプリケーションやフェイルオーバーを設定しません。
- Automation Controller は、任意のレプリケーションで動作します。
Event-Driven Ansible Controller
- Event-Driven Ansible Controller は別のサーバーにインストールする必要があります。Automation Hub および Automation Controller と同じホストにインストールすることはできません。
クラスター化されたインストール
- 既存のクラスターをアップグレードする場合は、既存のインスタンスまたはインスタンスグループを省略するようにクラスターを再設定することもできます。インスタンスまたはインスタンスグループをインベントリーファイルから省略するだけでは、クラスターから削除するには不十分です。インベントリーファイルからインスタンスまたはインスタンスグループを除外するほかに、アップグレードを開始する前にインスタンスまたはインスタンスグループのプロビジョニングを解除する必要もあります。詳細は、ノードまたはグループのプロビジョニング解除 を参照してください。そうしないと、省略されたインスタンスまたはインスタンスグループが引き続きクラスターと通信するため、アップグレード中に Automation Controller サービスで問題が発生する可能性があります。
クラスター化されたインストールセットアップを作成している場合は、
[localhost]
をすべてのインスタンスのホスト名または IP アドレスに置き換える必要があります。Automation Controller および Automation Hub のインストーラーは、[localhost]
を受け入れません。すべてのノードとインスタンスは、このホスト名またはアドレスを使用して他のノードに到達できるようにする必要があります。いずれかのノードで localhostansible_connection=local
を使用することはできません。すべてのノードのホスト名に同じ形式を使用します。したがって、これは機能しません。
[automationhub] localhost ansible_connection=local hostA hostB.example.com 172.27.0.4
代わりに以下の形式を使用します。
[automationhub] hostA hostB hostC
または
[automationhub] hostA.example.com hostB.example.com hostC.example.com