3.3. Red Hat OpenShift Container Platform Web コンソールでの Automation Hub の設定
次の手順を使用すると、Red Hat OpenShift Container Platform で Automation Hub Operator を設定し、カスタムリソースを指定し、外部データベースを使用して Ansible Automation Platform をデプロイできます。
Automation Hub の設定は、Automation Hub の pulp_settings を通じて、またはデプロイメント後にユーザーインターフェイスで直接行うことができます。ただし、pulp_settings で行われた設定は、ユーザーインターフェイスで行われた設定よりも優先されることに注意することが重要です。Hub 設定は、Hub のカスタムリソース仕様で常に小文字に設定する必要があります。
Automation Hub のインスタンスが削除されると、PVC は自動的に削除されません。これにより、新しいデプロイメントの名前が前のデプロイメントと同じ場合は、移行中に問題が発生する可能性があります。したがって、同じ namespace に新規 Automation Hub インスタンスをデプロイする前に、古い PVC を手動で削除することが推奨されます。詳細は 、PVC の検索および削除 を参照してください。
3.3.1. 前提条件
- Operator Hub で Ansible Automation Platform Operator をインストールした。
3.3.1.1. Red Hat OpenShift Container Platform への Ansible Automation Platform Operator インストールのストレージオプション
Automation Hub には、複数の Pod がコレクションなどの共有コンテンツにアクセスできるように、ReadWriteMany
ファイルベースのストレージ、Azure Blob ストレージ、または Amazon S3 準拠のストレージが必要です。
AutomationHub
CR でオブジェクトストレージを設定するプロセスは、Amazon S3 および Azure Blob Storage に類似しています。
ファイルベースのストレージを使用し、インストールシナリオに Automation Hub が含まれる場合は、Ansible Automation Platform Operator のストレージオプションが ReadWriteMany
に設定されていることを確認します。ReadWriteMany
はデフォルトのストレージオプションです。
さらに、OpenShift Data Foundation は ReadWriteMany
または S3 準拠の実装を提供します。また、ReadWriteMany
をサポートするように NFS ストレージ設定をセットアップすることもできます。ただし、これが原因で、NFS サーバーが単一障害点となる可能性があります。
関連情報
- OpenShift Container Platform ストレージ ガイドの NFS を使用した永続ストレージ
- IBM の How do I create a storage class for NFS dynamic storage provisioning in an OpenShift environment?
3.3.1.1.1. ReadWriteMany
アクセスモードを使用した OCP ストレージのプロビジョニング
Ansible Automation Platform Operator を正常にインストールするには、最初に Automation Hub のストレージタイプを ReadWriteMany
アクセスモードにプロビジョニングする必要があります。
手順
-
に移動します。 - をクリックします。
最初のステップでは、
accessModes
をデフォルトのReadWriteOnce
からReadWriteMany
に更新します。- アクセスモードを更新するには、プロビジョニング の詳しい説明を参照してください。
- 永続ボリューム要求 (PVC) を作成するには、このセクションの追加手順を実施します。
3.3.1.1.2. Amazon S3 でのオブジェクトストレージの設定
Red Hat は、Automation Hub 用の Amazon Simple Storage Service (S3) をサポートします。AutomationHub
カスタムリソース (CR) のデプロイ時に設定するか、既存のインスタンスに対して設定できます。
前提条件
- オブジェクトを保存するために Amazon S3 バケットを作成します。
- S3 バケットの名前を書き留めておきます。
手順
AWS 認証情報および接続の詳細、ならびに Amazon S3 バケットの名前を含む Kubernetes シークレットを作成します。以下の例では、
test-s3
というシークレットを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n $HUB_NAMESPACE apply -f- <<EOF apiVersion: v1 kind: Secret metadata: name: 'test-s3' stringData: s3-access-key-id: $S3_ACCESS_KEY_ID s3-secret-access-key: $S3_SECRET_ACCESS_KEY s3-bucket-name: $S3_BUCKET_NAME s3-region: $S3_REGION EOF
$ oc -n $HUB_NAMESPACE apply -f- <<EOF apiVersion: v1 kind: Secret metadata: name: 'test-s3' stringData: s3-access-key-id: $S3_ACCESS_KEY_ID s3-secret-access-key: $S3_SECRET_ACCESS_KEY s3-bucket-name: $S3_BUCKET_NAME s3-region: $S3_REGION EOF
シークレットを Automation Hub カスタムリソース (CR)
spec
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec: object_storage_s3_secret: test-s3
spec: object_storage_s3_secret: test-s3
-
このシークレットを既存のインスタンスに適用している場合は、API Pod を再起動して変更を反映します。
<hub-name>
はハブインスタンスの名前です。
oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
$ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
3.3.1.1.3. Azure Blob でのオブジェクトストレージの設定
Red Hat は、Automation Hub 用の Azure Blob Storage をサポートします。AutomationHub
カスタムリソース (CR) のデプロイ時に設定するか、既存のインスタンスに対して設定できます。
前提条件
- オブジェクトを保存するために Azure Storage Blob コンテナーを作成します。
- Blob コンテナーの名前を書き留めておきます。
手順
Azure アカウントの認証情報および接続の詳細、および Azure Storage blob コンテナーの名前を含む Kubernetes シークレットを作成します。以下の例では、
test-azure
という名前のシークレットを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n $HUB_NAMESPACE apply -f- <<EOF apiVersion: v1 kind: Secret metadata: name: 'test-azure' stringData: azure-account-name: $AZURE_ACCOUNT_NAME azure-account-key: $AZURE_ACCOUNT_KEY azure-container: $AZURE_CONTAINER azure-container-path: $AZURE_CONTAINER_PATH azure-connection-string: $AZURE_CONNECTION_STRING EOF
$ oc -n $HUB_NAMESPACE apply -f- <<EOF apiVersion: v1 kind: Secret metadata: name: 'test-azure' stringData: azure-account-name: $AZURE_ACCOUNT_NAME azure-account-key: $AZURE_ACCOUNT_KEY azure-container: $AZURE_CONTAINER azure-container-path: $AZURE_CONTAINER_PATH azure-connection-string: $AZURE_CONNECTION_STRING EOF
シークレットを Automation Hub カスタムリソース (CR)
spec
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec: object_storage_azure_secret: test-azure
spec: object_storage_azure_secret: test-azure
-
このシークレットを既存のインスタンスに適用している場合は、API Pod を再起動して変更を反映します。
<hub-name>
はハブインスタンスの名前です。
oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
$ oc -n $HUB_NAMESPACE delete pod -l app.kubernetes.io/name=<hub-name>-api
3.3.1.2. Automation Hub Operator ルートオプションの設定
Red Hat Ansible Automation Platform Operator のインストールフォームを使用すると、Advanced configuration で Automation Hub Operator のルートオプションをさらに設定できます。
手順
- Red Hat OpenShift Container Platform にログインします。
-
に移動します。 - Ansible Automation Platform Operator のデプロイメントを選択します。
- Automation Hub タブを選択します。
新しいインスタンスの場合は、
をクリックします。- 既存のインスタンスの場合は、⋮ アイコンをクリックして クリックすると、YAML ビューを編集できます。
- をクリックします。
- Ingress type でドロップダウンメニューをクリックし、Route を選択します。
- Route DNS host で、ルートの応答先となる共通のホスト名を入力します。
- Route TLS termination mechanism ドロップダウンメニューをクリックし、Edge または Passthrough を選択します。
- Route TLS credential secret で、ドロップダウンメニューをクリックし、一覧からシークレットを選択します。
3.3.1.3. Automation Hub Operator の Ingress タイプの設定
Ansible Automation Platform Operator インストールフォームを使用すると、Advanced configuration で Automation Hub Operator の Ingress をさらに設定できます。
手順
- Red Hat OpenShift Container Platform にログインします。
-
に移動します。 - Ansible Automation Platform Operator のデプロイメントを選択します。
- Automation Hub タブを選択します。
新しいインスタンスの場合は、
をクリックします。- 既存のインスタンスの場合は、⋮ アイコンをクリックして クリックすると、YAML ビューを編集できます。
- をクリックします。
- Ingress type でドロップダウンメニューをクリックし、Ingress を選択します。
- Ingress annotations で、Ingress に追加するアノテーションを入力します。
- Ingress TLS secret でドロップダウンメニューをクリックし、一覧からシークレットを選択します。
Automation Hub Operator を設定したら、フォームビューの下部にある
をクリックします。Red Hat OpenShift Container Platform が Pod を作成します。これには数分の時間がかかる場合があります。
検証
Automation Hub から Ansible Automation Platform Operator のインストールによって提供される以下の Operator Pod が実行されていることを確認します。
Operator マネージャーコントローラー | Automation Controller | Automation Hub |
---|---|---|
3 つの各 Operator の Operator マネージャーコントローラーには、以下が含まれます。
| Automation Controller のデプロイ後に、これらの Pod が追加されていることを確認できます。
| Automation Hub のデプロイ後に、これらの Pod が追加されていることを確認できます。
|
Pod が見つからない場合は、プルシークレットが必要であることを示している可能性があります。プルシークレットは、保護されたイメージレジストリーまたはプライベートイメージレジストリーに必要です。詳細は、イメージプルシークレットの使用 を参照してください。oc describe pod <pod-name>
を実行して、その Pod に ImagePullBackOff エラーがあるかどうかを確認することで、この問題をさらに診断できます。
3.3.2. Automation Hub ルートの確認
Automation Hub には、プラットフォームゲートウェイ経由または次の手順でアクセスできます。
手順
- Red Hat OpenShift Container Platform にログインします。
-
に移動します。 - Location で、Automation Hub インスタンスの URL をクリックします。
Automation Hub のユーザーインターフェイスが起動し、Operator の設定プロセス中に指定された管理者の認証情報を使用してサインインできます。
設定中に管理者パスワードを指定しなかった場合は、自動的に作成されます。このパスワードを確認するには、プロジェクトに移動し、
3.3.3. Red Hat Ansible Automation Platform Operator に Automation Hub 用の外部データベースを設定する
外部データベースを使用して Ansible Automation Platform をデプロイすることを希望するユーザーは、インスタンスの認証情報と接続情報を使用してシークレットを設定し、oc create
コマンドを使用してクラスターに適用するとデプロイできるようになります。
デフォルトでは、Ansible Automation Platform Operator は、Ansible Automation Platform デプロイメントと同じ namespace にマネージド PostgreSQL Pod を自動的に作成および設定します。
専用のノードを使用して専用のリソースを確保する場合や、バックアップ、アップグレード、またはパフォーマンス調整を手動で管理する場合は、代わりに外部データベースを選択できます。
データベース名が異なる限り、Automation Hub、Automation Controller、プラットフォームゲートウェイに同じ外部データベース (PostgreSQL インスタンス) を使用できます。つまり、単一の PostgreSQL インスタンス内に異なる名前のデータベースを複数指定できます。
次のセクションでは、Ansible Automation Platform Operator に Automation Hub 用の外部データベースを設定する手順を説明します。
前提条件
外部データベースが、Ansible Automation Platform の現在のリリースでサポートされているバージョンの PostgreSQL データベースを指定している。
Ansible Automation Platform 2.5 は PostgreSQL 15 をサポートしています。
手順
外部の postgres インスタンスのクレデンシャルと接続情報はシークレットに保存する必要があります。シークレットは Automation Hub の仕様に設定されます。
以下のテンプレートに従って、
postgres_configuration_secret
YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>" sslmode: "prefer" 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 sslmode: "prefer"
5 type: "unmanaged" type: Opaque
- 1
- シークレットを作成する namespace。これは、デプロイ先の namespace と同じにする必要があります。
- 2
- データベースノードの解決可能なホスト名です。
- 3
- 外部ポートのデフォルトは
5432
です。 - 4
- 変数
password
の値には、デプロイ、バックアップ、または復元中の問題を回避するために、一重引用符 (')、二重引用符 (")、またはバックスラッシュ (\) を含めないでください。 - 5
- 変数
sslmode
は、external
データベースに対してのみ有効です。使用できる値は、prefer
、disable
、allow
、require
、verify-ca
、およびverify-full
です。
oc create
コマンドを使用して、external-postgres-configuration-secret.yml
をクラスターに適用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f external-postgres-configuration-secret.yml
$ oc create -f external-postgres-configuration-secret.yml
AutomationHub
カスタムリソースオブジェクトを作成するときは、以下の例に従って、仕様にシークレットを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: automationhub.ansible.com/v1beta1 kind: AutomationHub metadata: name: hub-dev spec: postgres_configuration_secret: external-postgres-configuration
apiVersion: automationhub.ansible.com/v1beta1 kind: AutomationHub metadata: name: hub-dev spec: postgres_configuration_secret: external-postgres-configuration
3.3.3.1. Automation Hub PostgreSQL データベースの hstore 拡張機能の有効化
Ansible Automation Platform 2.5 で追加されたデータベース移行スクリプトは、hstore
フィールドを使用して情報を保存します。そのため、Automation Hub PostgreSQL データベースで hstore
拡張機能を有効にする必要があります。
Ansible Automation Platform インストーラーとマネージド PostgreSQL サーバーを使用する場合、このプロセスは自動的に行われます。
PostgreSQL データベースが外部にある場合は、インストール前に、Automation Hub PostgreSQL データベースで hstore
拡張機能を手動で有効にする必要があります。
インストール前に hstore
拡張機能が有効になっていないと、データベースの移行中にエラーが発生します。
手順
拡張機能が PostgreSQL サーバー (Automation Hub データベース) で利用できるかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"
$ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"
<automation hub database>
のデフォルト値はautomationhub
です。hstore
が利用できる場合の出力例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow name | default_version | installed_version |comment ------+-----------------+-------------------+--------------------------------------------------- hstore | 1.7 | | data type for storing sets of (key, value) pairs (1 row)
name | default_version | installed_version |comment ------+-----------------+-------------------+--------------------------------------------------- hstore | 1.7 | | data type for storing sets of (key, value) pairs (1 row)
hstore
が利用できない場合の出力例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)
name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)
RHEL ベースのサーバーでは、
hstore
拡張機能はpostgresql-contrib
RPM パッケージに含まれていますが、PostgreSQL サーバー RPM パッケージのインストール時に自動的にインストールされません。RPM パッケージをインストールするには、次のコマンドを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnf install postgresql-contrib
dnf install postgresql-contrib
次のコマンドを使用して、
hstore
PostgreSQL 拡張機能を Automation Hub データベースにロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow psql -d <automation hub database> -c "CREATE EXTENSION hstore;"
$ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"
次の出力では、使用されている
hstore
拡張機能がinstalled_version
フィールドに表示されています。これはhstore
が有効になっていることを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow name | default_version | installed_version | comment -----+-----------------+-------------------+------------------------------------------------------ hstore | 1.7 | 1.7 | data type for storing sets of (key, value) pairs (1 row)
name | default_version | installed_version | comment -----+-----------------+-------------------+------------------------------------------------------ hstore | 1.7 | 1.7 | data type for storing sets of (key, value) pairs (1 row)
3.3.4. PVC の検索および削除
Persistent Volume Claim (PVC) は、Automation Hub および Automation Controller アプリケーションが使用するデータを保存するために使用されるストレージボリュームです。これらの PVC はアプリケーションから独立しており、アプリケーションが削除されてもそのまま残ります。PVC が不要になるか、これを別の場所でバックアップしている場合には手動で削除できます。
手順
デプロイメント namespace にある既存 PVC をリスト表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pvc -n <namespace>
oc get pvc -n <namespace>
- 以前のデプロイメント名と PVC 名を比較して、以前のデプロイメントに関連付けられている PVC を特定します。
以前の PVC を削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete pvc -n <namespace> <pvc-name>
oc delete pvc -n <namespace> <pvc-name>
3.3.5. 追加の設定
コレクションのダウンロード数は、コレクションの使用状況を把握するのに役立ちます。コレクションのダウンロード数を Automation Hub に追加するには、次の設定を指定します。
spec: pulp_settings: ansible_collect_download_count: true
spec:
pulp_settings:
ansible_collect_download_count: true
ansible_collect_download_count
が有効になっている場合、Automation Hub はコレクションごとにダウンロード数を表示します。
3.3.6. Automation Controller イメージ設定に許可されるレジストリーを追加する
Automation Hub にコンテナーイメージをデプロイする前に、Automation Controller イメージ設定の allowedRegistries
にレジストリーを追加する必要があります。これを行うには、次のコードをコピーして、Automation Controller イメージの YAML に貼り付けます。
手順
- Red Hat OpenShift Container Platform にログインします。
-
に移動します。 - Resources ドロップダウンリストを選択し、"Image" と入力します。
- Image (config,openshift.io/v1) を選択します。
- Name という見出しの下の をクリックします。
- タブを選択します。
spec 値の下に以下を貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec: registrySources: allowedRegistries: - quay.io - registry.redhat.io - image-registry.openshift-image-registry.svc:5000 - <OCP route for your automation hub>
spec: registrySources: allowedRegistries: - quay.io - registry.redhat.io - image-registry.openshift-image-registry.svc:5000 - <OCP route for your automation hub>
- をクリックします。
3.3.7. 関連情報
- OpenShift Container Platform における Operator の実行に関する詳細は、OpenShift Container Platform 製品ドキュメント に移動し、Operator - OpenShift Container Platform での Operator の使用 をクリックしてください。