第3章 Red Hat Ansible Automation Platform Operator での Red Hat Ansible Automation Platform コンポーネントの設定
Ansible Automation Platform Operator をインストールし、Ansible Automation Platform コンポーネントを設定したら、必要な出力が得られるようにコンポーネントを設定できます。
3.1. Red Hat OpenShift Container Platform Web コンソールでのプラットフォームゲートウェイの設定
この手順を使用すると、Red Hat OpenShift Container Platform でプラットフォームゲートウェイ Operator をさらに設定し、カスタムリソースを指定し、外部データベースを使用して Ansible Automation Platform をデプロイできます。
3.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 データベースを指定している。
Ansible Automation Platform 2.5 は PostgreSQL 15 をサポートしています。
手順
外部の postgres インスタンスの認証情報と接続情報をシークレットに保存する必要があります。この情報は、その後プラットフォームゲートウェイの仕様に設定されます。
以下のテンプレートに従って、
postgres_configuration_secret
YAML ファイルを作成します。apiVersion: v1 kind: Secret metadata: name: external-postgres-configuration namespace: <target_namespace> stringData: host: "<external_ip_or_url_resolvable_by_the_cluster>" port: "<external_port>" database: "<desired_database_name>" username: "<username_to_connect_as>" password: "<password_to_connect_with>" type: "unmanaged" type: Opaque
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
Copy to Clipboard Copied! oc create
コマンドを使用して、external-postgres-configuration-secret.yml
をクラスターに適用します。oc create -f external-postgres-configuration-secret.yml
$ oc create -f external-postgres-configuration-secret.yml
Copy to Clipboard Copied! 注記以下は、プラットフォームゲートウェイのデプロイメント例です。すべてのコンポーネントの外部データベースを設定するには、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
apiVersion: aap.ansible.com/v1alpha1 kind: AnsibleAutomationPlatform metadata: name: example-aap Namespace: aap spec: database: database_secret: automation-platform-postgres-configuration
Copy to Clipboard Copied!
3.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'
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
# vi /var/lib/pgsql/data/postgres.conf
Copy to Clipboard Copied! 次の行を見つけてコメントアウトします。
#datestyle = 'Redwood, SHOW_TIME'
#datestyle = 'Redwood, SHOW_TIME'
Copy to Clipboard Copied! 新しくコメントアウトした行のすぐ下に次の設定を追加します。
datestyle = 'iso, mdy'
datestyle = 'iso, mdy'
Copy to Clipboard Copied! -
postgres.conf
ファイルを保存して閉じます。 データベース設定を再ロードします。
systemctl reload postgresql
# systemctl reload postgresql
Copy to Clipboard Copied! 注記このコマンドを実行してもデータベース操作は中断されません。
3.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"'
spec: extra_settings: - setting: REDIRECT_IS_HTTPS value: '"True"'
Copy to Clipboard Copied! - をクリックします。
検証
REDIRECT_IS_HTTPS
設定を追加したら、Pod が自動的に再デプロイされるまで待ちます。次のコマンドを実行すると、この設定が Pod に反映されていることを確認できます。
oc exec -it <gateway-pod-name> -- grep REDIRECT /etc/ansible-automation-platform/gateway/settings.py
oc exec -it <gateway-pod-name> -- grep REDIRECT /etc/ansible-automation-platform/gateway/settings.py
3.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
spec: extra_settings: - setting: CSRF_TRUSTED_ORIGINS value: - https://my-aap-domain.com
Copy to Clipboard Copied! - プラットフォームゲートウェイを設定したら、フォームビューの下部にある をクリックします (既存のインスタンスを編集した場合は をクリックします)。
Red Hat OpenShift Container Platform が Pod を作成します。これには数分の時間がかかる場合があります。
検証
プラットフォームゲートウェイからの Red Hat Ansible Automation Platform Operator インストールによって提供される次の Operator 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 エラーがあるかどうかを確認することで、この問題をさらに診断できます。
3.1.5. プラットフォームゲートウェイに関するよくある質問
- Ansible Automation Platform のデプロイメントを削除しても、Automation Controller には引き続きアクセスできますか?
- いいえ、Automation Controller、Automation Hub、および Event-Driven Ansible はデプロイメント内にネストされており、これらも削除されます。
- デプロイメントで問題が発生しましたが、何が問題なのかわかりません。どうすればわかりますか?
- 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) を有効にする を参照してください。