Red Hat Ansible Automation Platform 計画ガイド
Ansible Automation Platform のインストールを計画する
概要
はじめに
Red Hat Ansible Automation Platform に興味をお持ちいただきありがとうございます。Ansible Automation Platform は、Ansible を装備した環境に、制御、ナレッジ、委譲の機能を追加して、チームが複雑かつ複数層のデプロイメントを管理できるように支援する商用サービスです。
このガイドの情報を使用して、Red Hat Ansible Automation Platform のインストールを計画してください。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック (英語のみ)
技術的な内容に関するフィードバックをお寄せいただきありがとうございます。皆様のご意見をお待ちしています。コメントの追加、Insights の提供、誤字の修正、および質問を行う必要がある場合は、ドキュメントで直接行うこともできます。
Red Hat アカウントがあり、カスタマーポータルにログインしている必要があります。
カスタマーポータルからドキュメントのフィードバックを送信するには、以下の手順を実施します。
- Multi-page HTML 形式を選択します。
- ドキュメントの右上にある Feedback ボタンをクリックします。
- フィードバックを提供するテキストのセクションを強調表示します。
- 強調表示されたテキストの横にある Add Feedback ダイアログをクリックします。
- ページの右側のテキストボックスにフィードバックを入力し、Submit をクリックします。
フィードバックを送信すると、自動的に問題の追跡が作成されます。Submit をクリックすると表示されるリンクを開き、問題の監視を開始するか、さらにコメントを追加します。
第1章 Red Hat Ansible Automation Platform インストールの計画
Red Hat Ansible Automation Platform は、Red Hat Enterprise Linux と Red Hat Openshift の両方でサポートされます。このガイドを使用して、Red Hat Enterprise Linux への Red Hat Ansible Automation Platform のインストールを計画してください。
Red Hat OpenShift Container Platform 環境に Red Hat Ansible Automation Platform をインストールするには、Red Hat Ansible Automation Platform Operator を OpenShift Container Platform 上にデプロイする を参照してください。
第2章 Red Hat Ansible Automation Platform アーキテクチャー
Ansible Automation Platform は、モジュールプラットフォームとして、コンポーネントの統合およびデプロイメントのカスタマイズを簡単に実行するための柔軟性を提供し、自動化要件が最大限一致すようにします。このセクションでは、Ansible Automation Platform デプロイメントの包括的なアーキテクチャー例を示します。
2.1. Ansible Automation Platform アーキテクチャーの例
Red Hat Ansible Automation Platform 2.4 リファレンスアーキテクチャーは、Red Hat Enterprise Linux で自動化メッシュを使用した Ansible Automation Platform の標準デプロイメントのセットアップ例を提供します。表示されているデプロイでは、次の主要なコンポーネントを利用して、自動化ワークロードを処理するシンプルかつ安全で柔軟な方法、コンテンツコレクションの中央ロケーション、および IT 要求の自動解決を提供します。
- Automation Controller
- UI、Restful API、RBAC ワークフロー、および CI/CD 統合を介して自動化用のコントロールプレーンを提供します。
- 自動化メッシュ
- 自動化メッシュは、既存ネットワークを使用して互いにピアツーピア接続を確立しているノードを介して、大規模かつ分散したワーカーのコレクション全体に作業を容易に分散できる機能を提供するオーバーレイネットワークです。
- Private Automation Hub
- Private Automation Hub は、自動化開発者が共同作業で独自の自動化コンテンツを公開し、組織内での Ansible コードの配信を合理化できる機能を提供します。
- Event-Driven Ansible (EDA)
- 時間のかかるタスクを自動化し、あらゆる IT ドメインの条件の変化に対応するために必要なイベント処理機能を提供します。
この例のアーキテクチャーは、以下で構成されます。
- 2 ノードの Automation Controller クラスター
- Automation Controller を実行ノードに接続するためのオプションのホップノード
- 2 ノードの Automation Hub クラスター
- 単一ノードの EDA コントローラークラスター
- Automation Controller、Automation Hub、および EDA コントローラークラスターに接続された単一の PostgreSQL データベース
- Automation Controller クラスターごとに 2 つの実行ノード
図2.1 Ansible Automation Platform 2.4 アーキテクチャーの例

第3章 Red Hat Ansible Automation Platform プラットフォームコンポーネント
Ansible Automation Platform は、デプロイメントのニーズを満たすために相互に接続できる個別のコンポーネントで構成されるモジュラープラットフォームです。Ansible Automation Platform のデプロイメントは、ユーザーインターフェイス (UI) と RESTful アプリケーションプログラミングインターフェイス (API) を使用して Ansible 自動化を制御、保護、および管理するためのエンタープライズフレームワークである Automation Controller から始まります。続いて、以下の Automation Platform コンポーネントの任意の組み合わせをデプロイメントに追加できます。
3.1. Ansible Automation Hub
Ansible Automation Hub は、Ansible コンテンツコレクションの認定済みコンテンツのリポジトリーです。Ansible Automation Hub は、Red Hat とそのパートナーがコンテンツを公開し、お客様が認定済みでサポートされている Ansible Content Collection を発見するための一元化されたリポジトリーです。Red Hat Ansible Certified Content は、Red Hat によってテストされ、サポートされているコンテンツをユーザーに提供します。
3.2. Private Automation Hub
Private Automation Hub は、コンテンツを同期するためのオフラインソリューションとオンプレミスソリューションの両方を提供します。Red Hat クラウド Automation Hub からコレクションと実行環境のイメージを同期し、独自のカスタム自動化コレクションと実行イメージを保存して提供できます。Ansible Galaxy や他のコンテナーレジストリーなどの他のソースを使用して、Private Automation Hub にコンテンツを提供することもできます。Private Automation Hub は、エンタープライズディレクトリーと CI/CD パイプラインに統合できます。
3.3. Event-Driven Ansible コントローラー
Event-Driven Ansible Controller は、イベント駆動型自動化のためのインターフェイスであり、IT リクエストの自動解決を導入するものです。このコンポーネントは、イベントのソースに接続し、ルールブックを使用してそれらのイベントを操作するのに役立ちます。このテクノロジーにより、IT の速度と俊敏性が向上し、一貫性と耐障害性が実現します。Event-Driven Ansible を使用すると、以下が可能になります。
- 意思決定を自動化する
- 数多くのイベントソースを使用する
- 複数の IT ユースケース内で、そして複数の IT ユースケースをまたいでイベント駆動型自動化を実装する
3.4. 自動化メッシュ
自動化メッシュは、既存ネットワークを使用して互いにピアツーピア接続を確立しているノードを介して、大規模な分散ワーカーのコレクション全体で作業分散を容易にするオーバーレイネットワークです。
自動化メッシュは以下を提供します。
- 個別にスケーリングする動的クラスター容量。これにより、ダウンタイムを最小限に抑えてノードを作成、登録、グループ化、グループ化解除、および登録解除できます。
- コントロールプレーンと実行プレーンの分離。コントロールプレーンの容量とは関係なく Playbook の実行容量をスケーリングできます。
- 遅延に対する回復力があり、停止することなく再設定可能であり、停止が存在する場合は動的に再ルーティングして別のパスを選択するデプロイメントの選択肢。
- メッシュルーティングの変更。
- FIPS (Federal Information Processing Standards) に準拠する双方向、マルチホップのメッシュ通信の可能性を含む接続性。
3.5. 自動化実行環境
自動化実行環境は、Red Hat Ansible Automation Platform のすべての自動化が実行されるコンテナーイメージです。これらは、Ansible 実行エンジンと、ユーザーが IT 環境とプロセスのあらゆる側面を自動化するのに役立つ数百のモジュールを含むソリューションを提供します。自動化実行環境は、一般的に使用されるオペレーティングシステム、インフラストラクチャープラットフォーム、ネットワークデバイス、およびクラウドを自動化します。
3.6. Ansible Galaxy
Ansible Galaxy は、Ansible コンテンツを検索、再利用、および共有するためのハブです。事前にパッケージ化されたロールの形式でコミュニティーが提供する Galaxy コンテンツは、自動化プロジェクトの開始に役立ちます。インフラストラクチャーのプロビジョニング、アプリケーションのデプロイ、およびその他のタスクを完了するためのロールは、Ansible Playbook にドロップして、顧客の環境にすぐに適用できます。
3.7. 自動化コンテンツナビゲーター
自動化コンテンツナビゲーターは、自動化プラットフォームへの主要なコマンドラインインターフェイスとなる テキストユーザーインターフェイス (TUI) です。これは、コンテンツの構築、実行環境でのローカルでの自動化の実行、Ansible Automation Platform での自動化の実行、将来の 統合開発環境 (IDE) の基盤の提供などのユースケースを扱います。
第4章 システム要件
この情報を使用して、Red Hat Ansible Automation Platform のインストールを計画し、ユースケースに適した自動化メッシュトポロジーを設計します。
前提条件
-
sudoコマンドまたは権限昇格により、root アクセスを取得できる必要があります。権限昇格の詳細は、Understanding Privilege Escalation を参照してください。 - AWX、PostgreSQL、EDA、Pulp など、root からユーザーへ権限を降格できる必要があります。
4.1. Red Hat Ansible Automation Platform のシステム要件
お使いのシステムは、Red Hat Ansible Automation Platform をインストールして実行するために、以下の最小システム要件を満たしている必要があります。
表4.1 ベースシステム
| 要件 | 必須 | 注記 |
|---|---|---|
| サブスクリプション | 有効な Red Hat Ansible Automation Platform | |
| OS | Red Hat Enterprise Linux 8.6 以降 64-bit (x86、ppc64le、s390x、aarch64) | Red Hat Ansible Automation Platform は OpenShift でもサポートされています。詳細は、Red Hat Ansible Automation Platform Operator を OpenShift Container Platform 上にデプロイする を参照してください。 |
| Ansible | バージョン 2.14 (インストール用) | Ansible Automation Platform には、ansible-core 2.15 が含まれる実行環境が同梱されています。 |
| Python | 3.8 以降 | |
| ブラウザー | Mozilla Firefox または Google Chrome の現行のサポートバージョン | |
| データベース | PostgreSQL バージョン 13 |
プロジェクトの更新およびコレクションを使用するには、以下が必要です。
以下のドメイン名が、接続成功のファイアウォールまたはプロキシーの許可リストに含まれており、Automation Hub または Galaxy サーバーからコレクションをダウンロードするようにしてください。
-
galaxy.ansible.com -
cloud.redhat.com -
console.redhat.com -
sso.redhat.com
-
- 自己署名証明書または Red Hat ドメインを使用する場合に SSL インスペクションを無効にする必要があります。
Ansible Automation Platform が管理するシステムの要件は Ansible と同じです。Ansible ユーザーガイド の Getting started with Ansible を参照してください。
Red Hat Ansible Automation Platform 要件に関する注意点
- Red Hat Ansible Automation Platform は Ansible Playbook に依存しており、Automation Controller をインストールする前に最新の安定したバージョンの Ansible をインストールする必要がありますが、Ansible の手動インストールは不要になりました。
- 新規インストールの場合、Automation Controller は Ansible 2.14 の最新リリースパッケージをインストールします。
- バンドルの Ansible Automation Platform インストールを実行する場合は、インストールプログラムにより、バンドルから Ansible (およびその依存関係) のインストールが試行されます。
- Ansible を自身でインストールすることにした場合、Ansible Automation Platform インストールプログラムは Ansible がインストールされていることを検出して、再インストールを試行しません。
dnf などのパッケージマネージャーを使用して Ansible をインストールする必要があります。また、Red Hat Ansible Automation Platform が正常に動作するには、最新の安定したバージョンのパッケージマネージャーをインストールする必要があります。バージョン 2.4 以降には、Ansible バージョン 2.14 が必要です。
4.2. Automation Controller のシステム要件
Automation Controller は分散システムであり、このシステムでは、異なるソフトウェアコンポーネントを同じ場所に配置したり、複数のコンピュートノードにデプロイしたりすることができます。インストーラーでは、ユースケースに適したトポロジーを設計できるように、ノードタイプの制御、ハイブリッド、実行、およびホップが抽象化として提供されます。
ノードのサイジングには、次の推奨事項を使用してください。
コントロールノードとハイブリッドノードで、実行環境のストレージ用に、最小 20 GB を /var/lib/awx に割り当てます。
実行ノード
自動化を実行します。メモリーと CPU を増やし、フォークを多く実行できるように容量を増加します。
| 要件 | 必須 |
|---|---|
| RAM | 16 GB |
| CPU | 4 |
| ローカルディスク | 最小 40GB |
コントロールノード
イベントを処理し、プロジェクト更新およびクリーンアップジョブを含むクラスタージョブを実行します。CPU およびメモリーを増やすと、ジョブイベントの処理に役立ちます。
| 要件 | 必須 |
|---|---|
| RAM | 16 GB |
| CPU | 4 |
| ローカルディスク |
|
ハイブリッドノード
自動化ジョブとクラスタージョブの両方を実行します。実行ノードと制御ノードの CPU とメモリーに関するコメントも、このノードタイプに適用されます。
| 要件 | 必須 |
|---|---|
| RAM | 16 GB |
| CPU | 4 |
| ローカルディスク |
|
ホップノード
Automation Mesh の別の部分にトラフィックをルーティングします (たとえば、bastion ホストを別のネットワークにすることもできます)。RAM はスループットに影響を与える可能性があり、CPU アクティビティーは低くなります。一般に、ネットワーク帯域幅と遅延は、RAM や CPU よりも重要な要素です。
| 要件 | 必須 |
|---|---|
| RAM | 16 GB |
| CPU | 4 |
| ローカルディスク | 40GB |
-
実際の RAM 要件は、同時に管理するホストの Automation Controller の数により異なります (これはジョブテンプレートまたはシステムの
ansible.cfgファイルのforksパラメーターによって制御されます)。リソースの競合の可能性を回避するには、Ansible は 10 個のフォークごとに 1 GB のメモリーと、Automation Controller 用に 2 GB の予約を行うことを推奨します。詳細は、Automation Controller Capacity Determination and Job impact を参照してください。forksが 400 に設定されている場合は、42 GB のメモリーが推奨されます。 - より多くのホストにも対応できますが、フォーク数がホストの総数より少ない場合は、ホスト間でより多くのパスが必要になります。これらの RAM の制限は、ローリング更新を使用する場合、または構成を要求する各システムがキューに入り、可能な限り迅速に処理される Automation Controller に組み込まれたプロビジョニングコールバックシステムを使用する場合、または、Automation Controller が AMI などのイメージを作成または展開している場合は回避されます。これらはすべて、より大規模な環境を管理するための優れたアプローチです。詳細な質問は、Red Hat カスタマーポータル (https://access.redhat.com/) から Ansible サポートにお問い合わせください。
関連情報
4.3. Automation Hub のシステム要件
Automation Hub を使用すると、Red Hat Ansible および認定パートナーからの新しい認定自動化コンテンツを見つけて使用できます。Ansible Automation Hub では、クラウド自動化、ネットワーク自動化、セキュリティー自動化などのユースケースのために Red Hat とパートナーによって開発された、サポート対象自動化コンテンツである Ansible コレクションを検出して管理できます。
Automation Hub には、以下のシステム要件があります。
| 要件 | 必須 | 注記 |
|---|---|---|
| RAM | 最小 8GB |
|
| CPU | 最小 2 つ | 設定のフォークに基づく容量については、追加情報を参照してください。 |
| ローカルディスク | 60GB ディスク | コレクションストレージとして、少なくとも 40 GB を /var 専用にする必要があります。 |
Private Automation Hub
内部アドレスから Private Automation Hub をインストールし、外部アドレスしか記載されていない証明書を使用している場合は、インストールして証明書の問題がなくてもコンテナーレジストリーとして使用できなくなる可能性があります。
これを回避するには、インストールインベントリーファイル内の Private Automation Hub ノードにリンクする https://pah.example.com のような値で、automationhub_main_url インベントリー変数を使用します。
これにより、外部アドレスが /etc/pulp/settings.py に追加されます。
これは、外部アドレスのみを使用することを意味します。
インベントリーファイル変数の詳細は、Red Hat Ansible Automation Platform インストールガイド の インベントリーファイル変数 を参照してください。
4.4. PostgreSQL の要件
Red Hat Ansible Automation Platform は PostgreSQL13 を使用します。
- PostgreSQL ユーザーパスワードは、データベースに保存する前に SCRAM-SHA-256 のセキュアハッシュアルゴリズムでハッシュ化されます。
-
Automation Controller のインスタンスがデータベースにアクセスできるかどうかを判断するには、
awx-manage check_dbコマンドを使用します。
表4.2 データベース
| サービス | 必須 | 注記 |
|---|---|---|
| 各 Automation Controller | 40GB の専用ハードディスクスペース |
|
| 各 Automation Hub | 60 GB の専用ハードディスクスペース | ストレージボリュームは、最小ベースライン 1500 IOPS で評価される必要があります。 |
| データベース | 20GB の専用ハードディスクスペース |
|
PostgreSQL の設定
必要に応じて、PostgreSQL データベースを、Red Hat Ansible Automation Platform インストーラーで管理されていない個別ノードとして設定できます。Ansible Automation Platform インストーラーがデータベースサーバーを管理する場合は、大半のワークロードで一般的に推奨されているデフォルト値を使用してサーバーを設定します。ただし、スタンドアロンのデータベースサーバーノードの PostgreSQL 設定を調整できます。ansible_memtotal_mb は、データベースサーバーの合計メモリーサイズになります。
max_connections == 1024 shared_buffers == ansible_memtotal_mb*0.3 work_mem == ansible_memtotal_mb*0.03 maintenance_work_mem == ansible_memtotal_mb*0.04
関連情報
PostgreSQL サーバーのチューニングの詳細は、PostgreSQL のドキュメント を参照してください。
4.4.1. Automation HubPostgreSQL データベースの hstore 拡張機能の有効化
Ansible Automation Platform 2.4 以降、データベース移行スクリプトは hstore フィールドを使用して情報を保存するため、Automation Hub PostgreSQL データベースの hstore 拡張機能を有効にする必要があります。
Ansible Automation Platform インストーラーとマネージド PostgreSQL サーバーを使用する場合、このプロセスは自動的に行われます。
ただし、PostgreSQL データベースが外部にある場合は、Automation Hub をインストールする前にこの手順を手動で実行する必要があります。
Automation Hub のインストール前に hstore 拡張機能が有効になっていない場合は、データベースの移行中にエラーが発生します。
手順
拡張機能が PostgreSQL サーバー (Automation Hub データベース) で利用できるかどうかを確認します。
$ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"
<automation hub database>のデフォルト値はautomationhubです。これにより、次のような出力が得られます。
name | default_version | installed_version |comment ------+-----------------+-------------------+--------------------------------------------------- hstore | 1.7 | | data type for storing sets of (key, value) pairs (1 row)
これは、
hstore1.7 拡張機能は利用可能ですが、有効になっていないことを示します。hstore拡張機能が PostgreSQL サーバーで使用できない場合、結果は次のようになります。name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)
RHEL ベースのサーバーでは、
hstore拡張機能はpostgresql-contribRPM パッケージに含まれていますが、PostgreSQL サーバー RPM パッケージのインストール時に自動的にインストールされません。RPM パッケージをインストールするには、次のコマンドを使用します。
dnf install postgresql-contrib
次のコマンドを使用して、Automation Hub データベースに
hstorePostgreSQL 拡張機能を作成します。$ psql -d <automation hub database> -c "CREATE EXTENSION hstore"
その出力は次のとおりです。
CREATE EXTENSION
次の出力では、使用されている
hstore拡張子がinstalled_versionフィールドに含まれており、hstoreが有効であることを示しています。name | default_version | installed_version | comment -----+-----------------+-------------------+------------------------------------------------------ hstore | 1.7 | 1.7 | data type for storing sets of (key, value) pairs (1 row)
第5章 ネットワークポートおよびプロトコル
Red Hat Ansible Automation Platform (AAP) は、サービスとの通信に多くのポートを使用します。Red Hat Ansible Automation Platform サーバーへの着信接続を有効にするには、これらのポートを開いて利用できるようにする必要があります。これらのポートが利用可能で、サーバーのファイアウォールでブロックされていないことを確認してください。
以下のアーキテクチャー図は、すべての可能なコンポーネントと共に完全にデプロイされた Ansible Automation Platform の例です。

以下の表は、各アプリケーションに必要なデフォルトの Red Hat Ansible Automation Platform 宛先ポートを示しています。
以下に記載のデフォルトの宛先ポートおよびインストーラーインベントリーは設定可能です。お使いの環境に合わせて設定すると、動作が変わる場合があります。
表5.1 PostgreSQL
| ポート | プロトコル | サービス | 方向 | インストーラーのインベントリー変数 | 用途 |
|---|---|---|---|---|---|
| 22 | TCP | SSH | 受信および送信 |
| インストール時のリモートアクセス |
| 5432 | TCP | Postgres | 受信および送信 |
| デフォルトのポート コントローラーからデータベースポートへの接続を許可します。 |
表5.2 Automation Controller
| ポート | プロトコル | サービス | 方向 | インストーラーのインベントリー変数 | 用途 |
|---|---|---|---|---|---|
| 22 | TCP | SSH | 受信および送信 |
| インストール |
| 80 | TCP | HTTP | 受信 |
| UI/API |
| 443 | TCP | HTTPS | 受信 |
| UI/API |
| 5432 | TCP | PostgreSQL | 受信および送信 |
| 内部データベースが別のコンポーネントとともに使用されている場合に のみ 開きます。そうでない場合は、このポートを開放しないでください。 クラスター内のハイブリッドモード |
| 27199 | TCP | receptor | 受信および送信 |
| 必須および自動コントロールプレーンクラスタリング向けに全コントローラーで receptor リスナーポートを許可します。 |
表5.3 ホップノード
| ポート | プロトコル | サービス | 方向 | インストーラーのインベントリー変数 | 用途 |
|---|---|---|---|---|---|
| 22 | TCP | SSH | 受信および送信 |
| インストール |
| 27199 | TCP | receptor | 受信および送信 |
| Mesh コントローラーから receptor ポートへの接続を許可します。 |
表5.4 実行ノード
| ポート | プロトコル | サービス | 方向 | インストーラーのインベントリー変数 | 用途 |
|---|---|---|---|---|---|
| 22 | TCP | SSH | 受信および送信 |
| インストール |
| 27199 | TCP | receptor | 受信および送信 |
| Mesh: ノードは、コントローラーに直接ピア接続されます。ホップノードは使用しません。27199 は、実行ノードからの接続を双方向で許可します。 (ホップ接続ノード以外の場合) コントローラーからの receptor ポートへの接続を許可します。 (ホップノードを介してリレーされる場合) ホップノードから receptor ポートへの接続を許可します。 |
表5.5 コントロールノード
| ポート | プロトコル | サービス | 方向 | インストーラーのインベントリー変数 | 用途 |
|---|---|---|---|---|---|
| 22 | TCP | SSH | 受信および送信 |
| インストール |
| 27199 | TCP | receptor | 受信および送信 |
| Mesh: ノードは、コントローラーに直接ピア接続されます。関係するダイレクトノード。27199 は実行ノードからの接続を双方向で許可します。 (ホップ接続ノード以外の場合) コントローラーからの receptor ポートへの接続を有効にします。 (ホップノードを介してリレーされる場合) ホップノードから receptor ポートへの接続を有効にします。 |
| 443 | TCP | Podman | 受信 |
| UI/API |
表5.6 ハイブリッドノード
| ポート | プロトコル | サービス | 方向 | インストーラーのインベントリー変数 | 用途 |
|---|---|---|---|---|---|
| 22 | TCP | SSH | 受信および送信 |
| インストール |
| 27199 | TCP | receptor | 受信および送信 |
| Mesh: ノードは、コントローラーに直接ピア接続されます。ホップノードは使用しません。27199 は、実行ノードからの接続を双方向で許可します。 (ホップ接続ノード以外の場合) コントローラーからの receptor ポートへの接続を有効にします。 (ホップノードを介してリレーされる場合) ホップノードから receptor ポートへの接続を有効にします。 |
| 443 | TCP | Podman | 受信 |
| UI/API |
表5.7 Automation Hub
| ポート | プロトコル | サービス | 方向 | インストーラーのインベントリー変数 | 用途 |
|---|---|---|---|---|---|
| 22 | TCP | SSH | 受信および送信 |
| インストール |
| 80 | TCP | HTTP | 受信 | 固定値 | ユーザーインターフェイス |
| 443 | TCP | HTTPS | 受信 | 固定値 | ユーザーインターフェイス |
| 5432 | TCP | PostgreSQL | 受信および送信 |
| 内部データベースが別のコンポーネントとともに使用されている場合に のみ 開きます。そうでない場合は、このポートを開放しないでください。 |
表5.8 Red Hat Insights for Red Hat Ansible Automation Platform
| URL | 用途 |
|---|---|
| 一般的なアカウントサービス、サブスクリプション | |
| Insights データのアップロード | |
| インベントリーのアップロードおよびクラウドコネクター接続 | |
| Insights ダッシュボードへのアクセス |
表5.9 Automation Hub
| URL | 用途 |
|---|---|
| 一般的なアカウントサービス、サブスクリプション | |
| 実行環境のインデックス作成 | |
| TCP | |
| https://automation-hub-prd.s3.amazonaws.com https://automation-hub-prd.s3.us-east-2.amazonaws.com/ | ファイアウォールアクセス |
| Ansible コミュニティーがキュレートされた Ansible コンテンツ | |
| Red Hat およびパートナーが提供するコンテナーイメージへのアクセス | |
| Red Hat およびパートナーキュレートされた Ansible コレクション |
表5.10 実行環境 (EE)
| URL | 用途 |
|---|---|
| Red Hat およびパートナーが提供するコンテナーイメージへのアクセス | |
|
| Red Hat およびパートナーが提供するコンテナーイメージへのアクセス |
|
| Red Hat およびパートナーが提供するコンテナーイメージへのアクセス |
|
| Red Hat およびパートナーが提供するコンテナーイメージへのアクセス |
|
| Red Hat およびパートナーが提供するコンテナーイメージへのアクセス |
イメージマニフェストとファイルシステム Blob は、registry.redhat.io から直接提供されます。ただし、2023 年 5 月 1 日以降、ファイルシステム Blob は代わりに quay.io から提供されます。コンテナーイメージのプルに関する問題を回避するには、一覧表示された quay.io ホスト名への送信接続を有効にする必要があります。
この変更を、registry.redhat.io へのアウトバウンド接続を有効にするすべてのファイアウォール設定に変更を加えます。
ファイアウォールルールを設定するときは、IP アドレスの代わりにホスト名を使用します。
この変更を加えた後、引き続き registry.redhat.io からイメージをプルできます。Red Hat コンテナーイメージのプルを続行するために、quay.io にログインする必要も、quay.io レジストリーと直接やりとりする必要もありません。
詳細は、こちら の記事を参照してください。
第6章 Red Hat Ansible Automation Platform サブスクリプションの割り当て
Red Hat Ansible Automation Platform をインストールする前に、全ノードに有効なサブスクリプションが割り当てられている 必要があります。Ansible Automation Platform サブスクリプションを割り当てると、インストールを続行するのに必要なサブクリプションのみのリソースにアクセスできます。
Red Hat アカウントで Simple Content Access Mode を有効にしている場合は、サブスクリプションを割り当てる必要はありません。有効にした場合は、Ansible Automation Platform をインストールする前にシステムを Red Hat Subscription Management (RHSM) または Satellite に登録する必要があります。詳細は、Simple Content Access Mode を参照してください。
手順
Red Hat Ansible Automation Platform サブスクリプションの
pool_idを取得します。# subscription-manager list --available --all | grep "Ansible Automation Platform" -B 3 -A 6
注記Ansible Automation Platform サブスクリプションのアタッチが失敗する可能性があるため、MCT4022 をサブスクリプションの
pool_idとして使用しないでください。例
subsciption-manager listコマンドの出力例。Pool ID:セクションの説明に従ってpool_idを取得します。Subscription Name: Red Hat Ansible Automation, Premium (5000 Managed Nodes) Provides: Red Hat Ansible Engine Red Hat Ansible Automation Platform SKU: MCT3695 Contract: ```` Pool ID: <pool_id> Provides Management: No Available: 4999 Suggested: 1
サブスクリプションを割り当てます。
# subscription-manager attach --pool=<pool_id>
これで、Red Hat Ansible Automation Platform サブスクリプションがすべてのノードに割り当てられました。
検証
- サブスクリプションが正常に割り当てられたことを確認します。
# subscription-manager list --consumed
トラブルシューティング
Ansible Automation Platform インストーラーにバンドルされた特定のパッケージを見つけることができない場合や、
Repositories disabled by configurationのメッセージが表示される場合は、以下のコマンドを使用してリポジトリーを有効化してみてください。Red Hat Ansible Automation Platform 2.4 for RHEL 8
subscription-manager repos --enable ansible-automation-platform-2.4-for-rhel-8-x86_64-rpms
Red Hat Ansible Automation Platform 2.4 for RHEL 9
subscription-manager repos --enable ansible-automation-platform-2.4-for-rhel-9-x86_64-rpms
第7章 Red Hat Ansible Automation Platform インストーラーの選択および取得
Red Hat Enterprise Linux 環境のインターネット接続に基づいて、必要な Ansible Automation Platform インストーラーを選択します。以下のシナリオを確認し、ニーズを満たす Red Hat Ansible Automation Platform インストーラーを決定してください。
7.1. インターネットアクセスを使用したインストール
Red Hat Enterprise Linux 環境をインターネットに接続している場合は、Ansible Automation Platform (AAP) インストーラーを選択します。インターネットアクセスを使用してインストールすると、必要な最新のリポジトリー、パッケージ、および依存関係を取得します。AAP インストーラーを設定するには、以下のいずれかの方法を選択します。
tarball インストール
- Red Hat Ansible Automation Platform のダウンロード ページに移動します。
- Ansible Automation Platform <latest-version> Setup の Download Now をクリックします。
ファイルを展開します。
$ tar xvzf ansible-automation-platform-setup-<latest-version>.tar.gz
RPM インストール
Ansible Automation Platform インストーラーパッケージをインストールします。
v.2.4 for RHEL 8 for x86_64
$ sudo dnf install --enablerepo=ansible-automation-platform-2.4-for-rhel-8-x86_64-rpms ansible-automation-platform-installer
v.2.4 for RHEL 9 for x86-64
$ sudo dnf install --enablerepo=ansible-automation-platform-2.4-for-rhel-9-x86_64-rpms ansible-automation-platform-installer
dnf install は、リポジトリーがデフォルトで無効になっているため、リポジトリーを有効にします。
RPM インストーラーを使用すると、ファイルは /opt/ansible-automation-platform/installer ディレクトリーに置かれます。
7.2. インターネットアクセスなしでのインストール
インターネットにアクセスできない場合や、オンラインリポジトリーから個別のコンポーネントおよび依存関係をインストールしない場合は、Red Hat Ansible Automation Platform (AAP) の Bundle インストーラーを使用します。Red Hat Enterprise Linux リポジトリーへのアクセスは依然として必要です。その他の依存関係はすべて tar アーカイブに含まれます。
手順
- Red Hat Ansible Automation Platform のダウンロード ページに移動します。
- Ansible Automation Platform <latest-version> Setup Bundle の Download Now をクリックします。
ファイルを展開します。
$ tar xvzf ansible-automation-platform-setup-bundle-<latest-version>.tar.gz
第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 アドレスまたは完全修飾ドメイン名 (FDQN) を提供して、ユーザーが別のノードの Ansible Automation Hub および Automation Controller からコンテンツを同期してインストールできるようにします。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 は、任意のレプリケーションで動作します。
クラスター化されたインストール
- 既存のクラスターをアップグレードする場合は、既存のインスタンスまたはインスタンスグループを省略するようにクラスターを再設定することもできます。インスタンスまたはインスタンスグループをインベントリーファイルから省略するだけでは、クラスターから削除するには不十分です。インベントリーファイルからインスタンスまたはインスタンスグループを除外するほかに、アップグレードを開始する前にインスタンスまたはインスタンスグループのプロビジョニングを解除する必要もあります。ノードまたはグループのプロビジョニング解除 を参照してください。そうしないと、省略されたインスタンスまたはインスタンスグループが引き続きクラスターと通信するため、アップグレード中に 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
8.2. ノードまたはグループのプロビジョニング解除
Ansible Automation Platform インストーラーを使用して、ノードとインスタンスグループのプロビジョニングを解除できます。インストーラーを実行すると、グループ内のノードに割り当てられたすべての設定ファイルおよびログが削除されます。
[automationcontroller] グループで指定されている最初のホストを除き、インベントリーの任意のホストのプロビジョニングを解除することができます。
ノードのプロビジョニングを解除するには、インベントリーファイル内のノードまたはグループに node_state=deprovision を追加します。
以下に例を示します。
デプロイメントから単一のノードを削除するには、以下を実行します。
[automationcontroller] host1.example.com host2.example.com host4.example.com node_state=deprovision
または
デプロイからインスタンスグループ全体を削除するには、以下を実行します。
[instance_group_restrictedzone] host4.example.com host5.example.com [instance_group_restrictedzone:vars] node_state=deprovision
8.3. インベントリー変数
サンプルインベントリーファイルの [all:vars] に続く 2 番目の部分は、インストーラーによって使用される変数のリストです。all を使用すると、変数がすべてのホストに適用されます。
特定のホストに変数を適用するには、[hostname:vars] を使用します。たとえば、[automationhub:vars] です。
8.4. インベントリーファイルで変数を宣言するためのルール
文字列変数の値は、引用符で囲んで宣言します。以下に例を示します。
pg_database='awx' pg_username='awx' pg_password='<password>'
:vars セクションで宣言すると、INI 値は文字列として解釈されます。たとえば、var=FALSE は FALSE に等しい文字列を作成します。ホスト行とは異なり、:vars セクションは行ごとに 1 つのエントリーのみを受け入れるため、= の後のすべてがエントリーの値である必要があります。ホスト行は、行ごとに複数の key=value パラメーターを受け入れます。したがって、スペースがセパレーターではなく値の一部であることを示す方法が必要です。空白を含む値は引用符で囲むことができます (一重または二重)。詳細は、Python shlex parsing rules を参照してください。
INI インベントリーに設定された変数値が特定の型 (文字列やブール値など) でなければならない場合は、常にタスクでフィルターを使用して型を指定します。変数を使用するときは、INI インベントリーで設定されたタイプに依存しないでください。
変数の実際の型に関する混乱を避けるために、インベントリーソースに YAML 形式を使用することを検討してください。YAML インベントリープラグインは、変数値を一貫して正しく処理します。
Ansible インベントリーファイルのパラメーター値に、#、{ または } などの特殊文字が含まれている場合は、値をダブルエスケープ (double-escape) する必要があります (値を単一と二重引用符で囲みます)。
たとえば、mypasswordwith#hashsigns を変数 pg_password の値として使用するには、Ansible ホストインベントリーファイルで pg_password='"mypasswordwith#hashsigns"' として宣言します。
8.5. インベントリーファイルでシークレットを保護する
Ansible Vault を使用して機密変数または秘密変数を暗号化できます。ただし、変数名と変数値を暗号化すると、値のソースを見つけるのが難しくなります。これを回避するには、ansible-vault encrypt_string を使用して変数を個別に暗号化するか、変数を含むファイルを暗号化します。
手順
暗号化された認証情報を保存するために、
credentials.ymlというラベルの付いたファイルを作成します。$ cat credentials.yml admin_password: my_long_admin_pw pg_password: my_long_pg_pw registry_password: my_long_registry_pw
ansible-vaultを使用してcredentials.ymlファイルを暗号化します。$ ansible-vault encrypt credentials.yml New Vault password: Confirm New Vault password: Encryption successful
重要暗号化された vault パスワードを安全な場所に保管します。
credentials.ymlファイルが暗号化されていることを確認します。$ cat credentials.yml $ANSIBLE_VAULT;1.1; AES256363836396535623865343163333339613833363064653364656138313534353135303764646165393765393063303065323466663330646232363065316666310a373062303133376339633831303033343135343839626136323037616366326239326530623438396136396536356433656162333133653636616639313864300a353239373433313339613465326339313035633565353464356538653631633464343835346432376638623533613666326136343332313163343639393964613265616433363430633534303935646264633034383966336232303365383763
Ansible Automation Platform 2.4 のインストールのために
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
8.6. 追加のインベントリーファイル変数
インベントリーファイルに追加変数を追加して、Red Hat Ansible Automation Platform インストールをさらに設定できます。これらの設定では、Red Hat Ansible Automation Platform 管理用のオプション機能を追加します。テキストエディターでインベントリーファイルを編集して、これらの変数を追加します。
インベントリーファイル変数の定義済み値の表は、Red Hat Ansible Automation Platform インストールガイド の インベントリーファイル変数 にあります。
第9章 サポート対象のインストールシナリオ
Red Hat は、Red Hat Ansible Automation Platform 向けに以下のインストールシナリオをサポートします。
関連情報
インベントリーファイルのパラメーターを編集して、サポートされているインストールシナリオを指定するには、Red Hat Ansible Automation Platform インストールガイド の インストールシナリオに基づくインベントリーファイルの例 を参照してください。
9.1. 同一ノード上にあるデータベースを持つスタンドアロン Automation Controller またはインストーラー以外が管理するデータベース
このシナリオでは、1 台のマシンに Web フロントエンド、REST API バックエンド、データベースを含む Automation Controller のインストールが含まれます。PostgreSQL をインストールし、そのデータベースとして使用するように Automation Controller を設定します。これは、標準の Automation Controller のインストールシナリオとみなされます。
9.2. 外部管理データベースが設定されたスタンドアロン Automation Controller
このシナリオでは、単一のマシンに Automation Controller サーバーをインストールし、リモート PostgreSQL インスタンスとの通信をデータベースとして設定します。このリモート PostgreSQL は、管理するサーバーを使用することも、Amazon RDS などのクラウドサービスで提供することも可能です。
9.3. 内部データベースを備えた単一の Event-Driven Ansible Controller ノード
このシナリオには、内部データベースを備えた単一マシンへの Event-Driven Ansible コントローラーのインストールが含まれます。Automation Controller のインストールシナリオと同様の、インストーラー管理の PostgreSQL をインストールします。
インベントリーファイルに適切な Event-Driven Ansible 変数を設定する前に、Automation Controller をインストールする必要があります。
9.4. 同じノード上にあるデータベースまたはインストーラー以外が管理するデータベースを使用するスタンドアロン Automation Hub
このシナリオでは、1 台のマシンに Web フロントエンド、REST API バックエンド、データベースなど、Automation Hub のインストールが含まれます。PostgreSQL をインストールし、そのデータベースとして使用するように Automation Hub を設定します。
9.5. 外部管理データベースを使用するスタンドアロン Automation Hub
このシナリオでは、1 台のマシンに Automation Hub サーバーをインストールし、Red Hat Ansible Automation Platform インストーラーが管理するリモート PostgreSQL データベースをインストールします。
9.6. Automation Controller ノードまたはインストーラー以外が管理するデータベースを使用したプラットフォームインストール
このシナリオには、Automation Controller ノードにあるデータベース、またはインストーラー以外が管理するデータベースを使用した Automation Controller および Automation Hub のインストールが含まれます。
9.7. 外部管理データベースを使用したプラットフォームのインストール
このシナリオでは、Automation Controller と Automation Hub をインストールし、リモートの PostgreSQL インスタンスとの通信をデータベースとして設定します。このリモート PostgreSQL は、管理するサーバーを使用することも、Amazon RDS などのクラウドサービスで提供することも可能です。
9.8. 外部管理データベースを使用した複数マシンのクラスターのインストール
このシナリオでは、複数の Automation Controller ノードおよび Automation Hub インスタンスをインストールし、リモート PostgreSQL インスタンスとの通信をデータベースとして設定します。このリモート PostgreSQL は、管理するサーバーを使用することも、Amazon RDS などのクラウドサービスで提供することも可能です。このシナリオでは、すべての Automation Controller がアクティブでジョブを実行でき、すべてのノードが HTTP 要求を受信できます。
クラスター設定で実行するには、Automation Controller が外部のものである必要があります。PostgreSQL はプライマリーまたはセカンダリーの Tower ノードの 1 つではないマシンにインストールする必要があります。冗長設定の場合、リモートの PostgreSQL バージョン要件は PostgreSQL 13 です。
- クラスター化の設定に関する情報は、クラスタリング を参照してください。
-
[automationhub]ホストの到達可能な IP アドレスを指定して、ユーザーが別のノードから Private Automation Hub のコンテンツを同期できるようにします。