第5章 Red Hat Ansible Automation Platform Operator での Red Hat Ansible Automation Platform コンポーネントの設定
Ansible Automation Platform Operator をインストールし、Ansible Automation Platform コンポーネントを設定したら、必要な出力が得られるようにコンポーネントを設定できます。
5.1. Red Hat OpenShift Container Platform Web コンソールでのプラットフォームゲートウェイの設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用すると、Red Hat OpenShift Container Platform でプラットフォームゲートウェイ Operator をさらに設定し、カスタムリソースを指定し、外部データベースを使用して Ansible Automation Platform をデプロイできます。
5.1.1. Red Hat Ansible Automation Platform Operator にプラットフォームゲートウェイ用の外部データベースを設定する リンクのコピーリンクがクリップボードにコピーされました!
外部データベースを使用して Ansible Automation Platform をデプロイするには、次の 2 つのシナリオがあります。
| シナリオ | 必要な操作 |
| 新規インストール | 次の目的でプラットフォームが使用する外部データベースインスタンスを 1 つ指定する必要があります。
これに関するヘルプは、aap-configuring-external-db-all-default-components.yml の例を参照してください (14.1. カスタムリソース セクションを参照)。 Red Hat Ansible Lightspeed を使用している場合は、aap-configuring-external-db-with-lightspeed-enabled.yml の例を使用してください。 |
| 2.4 の既存の外部データベース |
既存の外部データベースはアップグレード後も同じままですが、Ansible Automation Platform カスタムリソースで |
外部データベースを使用して Ansible Automation Platform をデプロイするには、まずデータベースに接続するための認証情報を含めて Kubernetes シークレットを作成する必要があります。
デフォルトでは、Ansible Automation Platform Operator は、Ansible Automation Platform デプロイメントと同じ namespace にマネージド PostgreSQL Pod を自動的に作成および設定します。Ansible Automation Platform Operator が自動的に作成するマネージド PostgreSQL Pod の代わりに、外部データベースを使用して Ansible Automation Platform をデプロイすることもできます。
外部データベースを使用すると、リソースを共有して再利用でき、バックアップ、アップグレード、およびパフォーマンスの最適化を手動で管理できます。
データベース名が異なる限り、Automation Hub、Automation Controller、プラットフォームゲートウェイに同じ外部データベース (PostgreSQL インスタンス) を使用できます。つまり、単一の PostgreSQL インスタンス内に異なる名前のデータベースを複数指定できます。
次のセクションでは、Ansible Automation Platform Operator にプラットフォームゲートウェイ用の外部データベースを設定する手順を説明します。
前提条件
外部データベースが、Ansible Automation Platform の現在のリリースでサポートされているバージョンの PostgreSQL データベースを指定している。外部の postgres インスタンスの認証情報と接続情報をシークレットに保存する必要があります。この情報は、その後プラットフォームゲートウェイの仕様に設定されます。
Ansible Automation Platform 2.5 は PostgreSQL 15 をサポートしています。
手順
以下のテンプレートに従って、
postgres_configuration_secretYAML ファイルを作成します。apiVersion: v1 kind: Secret metadata: name: external-postgres-configuration namespace: <target_namespace>1 stringData: host: "<external_ip_or_url_resolvable_by_the_cluster>"2 port: "<external_port>"3 database: "<desired_database_name>" username: "<username_to_connect_as>" password: "<password_to_connect_with>"4 type: "unmanaged" type: Opaque- シークレットを作成する namespace。これは、デプロイ先の namespace と同じにする必要があります。
- データベースノードの解決可能なホスト名です。
-
外部ポートのデフォルトは
5432です。 -
変数
passwordの値には、デプロイ、バックアップ、または復元中の問題を回避するために、一重引用符 (')、二重引用符 (")、またはバックスラッシュ (\) を含めないでください。
oc createコマンドを使用して、external-postgres-configuration-secret.ymlをクラスターに適用します。$ oc create -f external-postgres-configuration-secret.yml注記以下は、プラットフォームゲートウェイのデプロイメント例です。すべてのコンポーネントの外部データベースを設定するには、aap-configuring-external-db-all-default-components.yml の例を使用してください (14.1. カスタムリソース セクションを参照)。
AnsibleAutomationPlatformカスタムリソースオブジェクトを作成するときに、次の例に従って、仕様にシークレットを指定します。apiVersion: aap.ansible.com/v1alpha1 kind: AnsibleAutomationPlatform metadata: name: example-aap Namespace: aap spec: database: database_secret: automation-platform-postgres-configuration
5.1.2. 予期しない DataStyle が設定された外部データベースのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform Operator をアップグレードするときに、次のようなエラーが発生する場合があります。
NotImplementedError: can't parse timestamptz with DateStyle 'Redwood, SHOW_TIME': '18-MAY-23 20:33:55.765755 +00:00'
このようなエラーは、予期しない DateStyle が設定された外部データベースがある場合に発生します。この問題を解決するには、次の手順を参照してください。
手順
データベースサーバーの
/var/lib/pgsql/data/postgres.confファイルを編集します。# vi /var/lib/pgsql/data/postgres.conf次の行を見つけてコメントアウトします。
#datestyle = 'Redwood, SHOW_TIME'新しくコメントアウトした行のすぐ下に次の設定を追加します。
datestyle = 'iso, mdy'-
postgres.confファイルを保存して閉じます。 データベース設定を再ロードします。
# systemctl reload postgresql注記このコマンドを実行してもデータベース操作は中断されません。
5.1.3. OpenShift Container Platform のプラットフォームゲートウェイでシングルサインオン (SSO) 用の HTTPS リダイレクトを有効にする リンクのコピーリンクがクリップボードにコピーされました!
SAML 用の HTTPS リダイレクトを使用すると、一度ログインするだけで、再認証することなくプラットフォームゲートウェイ全体にアクセスできます。
前提条件
- Ansible Automation Platform Operator からゲートウェイに SAML を正常に設定した。これに関するヘルプは、SAML 認証の設定 を参照してください。
手順
- Red Hat OpenShift Container Platform にログインします。
-
に移動します。 - Ansible Automation Platform Operator のデプロイメントを選択します。
- All Instances を選択し、AnsibleAutomationPlatform インスタンスに移動します。
- ⋮ アイコンをクリックし、 を選択します。
YAML view で、
spec:セクションの下に次の YAML コードを貼り付けます。spec: extra_settings: - setting: REDIRECT_IS_HTTPS value: '"True"'- をクリックします。
検証
REDIRECT_IS_HTTPS 設定を追加したら、Pod が自動的に再デプロイされるまで待ちます。次のコマンドを実行すると、この設定が Pod に反映されていることを確認できます。
oc exec -it <gateway-pod-name> -- grep REDIRECT /etc/ansible-automation-platform/gateway/settings.py
5.1.4. プラットフォームゲートウェイ Operator の Ingress の CSRF を設定する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ansible Automation Platform Operator は、Openshift ルートを作成し、クロスサイトリクエストフォージェリー (CSRF) 設定を自動的に指定します。外部 Ingress を使用する場合は、クロスサイトリクエストを許可するように Ingress で CSRF を設定する必要があります。Advanced configuration でプラットフォームゲートウェイ Operator の Ingress を設定できます。
手順
- Red Hat OpenShift Container Platform にログインします。
-
に移動します。 - Ansible Automation Platform Operator のデプロイメントを選択します。
- Ansible Automation Platform タブを選択します。
新しいインスタンスの場合は、 をクリックします。
- 既存のインスタンスの場合は、⋮ アイコンをクリックして クリックすると、YAML ビューを編集できます。
- をクリックします。
- Ingress annotations で、Ingress に追加するアノテーションを入力します。
- Ingress TLS secret で、ドロップダウンリストをクリックし、リストからシークレットを選択します。
YAML view で次のコードを貼り付けます。
spec: extra_settings: - setting: CSRF_TRUSTED_ORIGINS value: - https://my-aap-domain.com- プラットフォームゲートウェイを設定したら、フォームビューの下部にある をクリックします (既存のインスタンスを編集した場合は をクリックします)。
検証
Red Hat OpenShift Container Platform が Pod を作成します。これには数分の時間がかかる場合があります。
| Operator マネージャーコントローラー Pod | Automation Controller Pod | Automation Hub Pod | Event-Driven Ansible (EDA) Pod | プラットフォームゲートウェイ Pod |
|---|---|---|---|---|
| 4 つの Operator それぞれの Operator マネージャーコントローラー。次のものが含まれます。
| Automation Controller のデプロイ後に、次の Pod が追加されていることを確認できます。
| Automation Hub のデプロイ後に、次の Pod が追加されていることを確認できます。
| EDA のデプロイ後に、次の Pod が追加されていることを確認できます。
| プラットフォームゲートウェイをデプロイすると、次の Pod が追加されていることを確認できます。
|
Pod が見つからない場合は、プルシークレットが必要であることを示している可能性があります。プルシークレットは、保護されたイメージレジストリーまたはプライベートイメージレジストリーに必要です。詳細は、イメージプルシークレットの使用 を参照してください。oc describe pod <pod-name> を実行して、その Pod に ImagePullBackOff エラーがあるかどうかを確認することで、この問題をさらに診断できます。
5.1.5. プラットフォームゲートウェイに関するよくある質問 リンクのコピーリンクがクリップボードにコピーされました!
ここに示す「よくある質問」は、Ansible Automation Platform デプロイメントの管理と、一般的な問題のトラブルシューティングに使用できます。コンポーネントのリソース管理、ロギング、エラー回復について説明しています。
- Ansible Automation Platform のデプロイメントを削除しても、Automation Controller には引き続きアクセスできますか?
- いいえ、Automation Controller、Automation Hub、および Event-Driven Ansible はデプロイメント内にネストされており、これらも削除されます。
- Ansible Automation Platform のカスタムリソース (CR) 階層でパラメーターを追加または削除する場合、パラメーターをどのように管理する必要がありますか?
- パラメーターを 追加 する場合、Ansible Automation Platform のカスタムリソース (CR) にのみ追加すると、そのパラメーターはネストされた CR まで適用されます。
パラメーターを 削除 する場合は、Ansible Automation Platform CR および ネストされた CR (Automation Controller CR など) の両方からパラメーターを削除する必要があります。
- デプロイメントで問題が発生しましたが、何が問題なのかわかりません。どうすればわかりますか?
- Operator が調整している間、コマンドラインで状況を追跡できます。これはデバッグに役立ちます。または、デプロイメントのインスタンスをクリックして、デプロイの進行中にステータスの状態が更新される様子を確認することもできます。
- 個々のコンポーネントのログを表示することは、現在も可能ですか?
- トラブルシューティングを行うときは、メインログは、Ansible Automation Platform インスタンスを調べてください。さらに具体的な情報は、各コンポーネント (EDA、AutomationHub、AutomationController) を調べてください。
- インスタンスの状態はどこで確認できますか?
-
ステータスの状態を表示するには、インスタンスをクリックし、Details または Events タブを確認します。または、get コマンド (
oc get automationcontroller <instance-name> -o jsonpath=Pipe "| jq") を実行して、ステータスの状態を表示することもできます。 - 移行をリアルタイムで追跡できますか?
-
移行のステータスを追跡したり、移行が失敗した理由を確認したりするには、移行の実行中に移行ログを確認します。logs コマンド
oc logs fresh-install-controller-migration-4.6.0-jwfm6 -fを使用してください。 - SAML を設定しましたが、"Unable to complete social auth login" というエラーが発生して認証が失敗します。どうすればよいですか?
-
REDIRECT_IS_HTTPS追加設定を含めるには、Ansible Automation Platform インスタンスを更新する必要があります。これに関するヘルプは、OpenShift Container Platform 上のプラットフォームゲートウェイでシングルサインオン (SSO) を有効にする を参照してください。