5.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 の検索および削除 を参照してください。
5.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Operator Hub で Ansible Automation Platform Operator をインストールした。
5.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 サーバーが単一障害点となる可能性があります。
5.3.1.1.1. ReadWriteMany アクセスモードを使用した OCP ストレージのプロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform Operator を正常にインストールするには、最初に Automation Hub のストレージタイプを ReadWriteMany アクセスモードにプロビジョニングする必要があります。
手順
-
に移動します。 - をクリックします。
最初のステップでは、
accessModesをデフォルトのReadWriteOnceからReadWriteManyに更新します。- アクセスモードを更新するには、プロビジョニング の詳しい説明を参照してください。
- 永続ボリューム要求 (PVC) を作成するには、このセクションの追加手順を実施します。
5.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 シークレットを Automation Hub カスタムリソース (CR)
specに追加します。spec: object_storage_s3_secret: test-s3
spec: object_storage_s3_secret: test-s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow このシークレットを既存のインスタンスに適用している場合は、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>-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.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 シークレットを Automation Hub カスタムリソース (CR)
specに追加します。spec: object_storage_azure_secret: test-azure
spec: object_storage_azure_secret: test-azureCopy to Clipboard Copied! Toggle word wrap Toggle overflow このシークレットを既存のインスタンスに適用している場合は、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>-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.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 で、ドロップダウンメニューをクリックし、一覧からシークレットを選択します。
注記ルートを設定した後、その Automation Hub インスタンスの YAML に
route_host:を追加して、ホスト名をカスタマイズできます。
5.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 エラーがあるかどうかを確認することで、この問題をさらに診断できます。
5.3.2. Automation Hub ルートの確認 リンクのコピーリンクがクリップボードにコピーされました!
Automation Hub には、プラットフォームゲートウェイ経由または次の手順でアクセスできます。
手順
- Red Hat OpenShift Container Platform にログインします。
-
に移動します。 - Location で、Automation Hub インスタンスの URL をクリックします。
検証
Automation Hub のユーザーインターフェイスが起動し、Operator の設定プロセス中に指定された管理者の認証情報を使用してサインインできます。
設定中に管理者パスワードを指定しなかった場合は、自動的に作成されます。このパスワードを確認するには、プロジェクトに移動し、
5.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 データベースを指定している。外部の postgres インスタンスのクレデンシャルと接続情報はシークレットに保存する必要があります。シークレットは Automation Hub の仕様に設定されます。
Ansible Automation Platform 2.6 は、マネージドデータベースとして PostgreSQL 15 をサポートし、さらに外部データベースとして PostgreSQL 15、16、17 をサポートします。
バージョン 16 または 17 で外部管理データベースを使用する場合は、外部のバックアップおよび復元プロセスも利用する必要があります。
手順
以下のテンプレートに従って、
postgres_configuration_secretYAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - シークレットを作成する namespace。これは、デプロイ先の namespace と同じにする必要があります。
- データベースノードの解決可能なホスト名です。
-
外部ポートのデフォルトは
5432です。 -
変数
passwordの値には、デプロイ、バックアップ、または復元中の問題を回避するために、一重引用符 (')、二重引用符 (")、またはバックスラッシュ (\) を含めないでください。 -
変数
sslmodeは、externalデータベースに対してのみ有効です。使用できる値は、prefer、disable、allow、require、verify-ca、およびverify-fullです。
oc createコマンドを使用して、external-postgres-configuration-secret.ymlをクラスターに適用します。oc create -f external-postgres-configuration-secret.yml
$ oc create -f external-postgres-configuration-secret.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow AutomationHubカスタムリソースオブジェクトを作成するときは、以下の例に従って、仕様にシークレットを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.3.1. Automation Hub PostgreSQL データベースの hstore 拡張機能の有効化 リンクのコピーリンクがクリップボードにコピーされました!
データベース移行スクリプトは、hstore フィールドを使用して情報を保存します。そのため、Automation Hub PostgreSQL データベースで hstore 拡張機能を有効にする必要があります。
Ansible Automation Platform インストーラーとマネージド PostgreSQL サーバーを使用する場合、このプロセスは自動的に行われます。
PostgreSQL データベースが外部にある場合は、インストール前に、Automation Hub PostgreSQL データベースで hstore 拡張機能を手動で有効にする必要があります。
インストール前に hstore 拡張機能が有効になっていないと、データベースの移行中にエラーが発生します。
手順
拡張機能が PostgreSQL サーバー (Automation Hub データベース) で利用できるかどうかを確認します。
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'"Copy to Clipboard Copied! Toggle word wrap Toggle overflow <automation hub database>のデフォルト値はautomationhubです。hstoreが利用できる場合の出力例: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)Copy to Clipboard Copied! Toggle word wrap Toggle overflow hstoreが利用できない場合の出力例:name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)
name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHEL ベースのサーバーでは、
hstore拡張機能はpostgresql-contribRPM パッケージに含まれていますが、PostgreSQL サーバー RPM パッケージのインストール時に自動的にインストールされません。RPM パッケージをインストールするには、次のコマンドを使用します。
dnf install postgresql-contrib
dnf install postgresql-contribCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、
hstorePostgreSQL 拡張機能を Automation Hub データベースにロードします。psql -d <automation hub database> -c "CREATE EXTENSION hstore;"
$ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の出力では、使用されている
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)
name | default_version | installed_version | comment -----+-----------------+-------------------+------------------------------------------------------ hstore | 1.7 | 1.7 | data type for storing sets of (key, value) pairs (1 row)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.4. PVC の検索および削除 リンクのコピーリンクがクリップボードにコピーされました!
Persistent Volume Claim (PVC) は、Automation Hub および Automation Controller アプリケーションが使用するデータを保存するために使用されるストレージボリュームです。これらの PVC はアプリケーションから独立しており、アプリケーションが削除されてもそのまま残ります。PVC が不要になるか、これを別の場所でバックアップしている場合には手動で削除できます。
手順
デプロイメント namespace にある既存 PVC をリスト表示します。
oc get pvc -n <namespace>
oc get pvc -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以前のデプロイメント名と PVC 名を比較して、以前のデプロイメントに関連付けられている PVC を特定します。
以前の PVC を削除します。
oc delete pvc -n <namespace> <pvc-name>
oc delete pvc -n <namespace> <pvc-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.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 はコレクションごとにダウンロード数を表示します。
5.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 - をクリックします。
5.3.7. Ansible Automation Platform Hub Operator のコンテンツ署名の設定 リンクのコピーリンクがクリップボードにコピーされました!
組織の自動化管理者は、組織内のさまざまなグループの Ansible コンテンツコレクションに署名して公開するように Ansible Automation Platform Hub Operator を設定できます。
セキュリティーを強化するために、自動化作成者は Ansible-Galaxy CLI を設定してこのコレクションを検証し、Automation Hub へのアップロード後に変更されていないことを確認できます。
Ansible Certified Content Collections に正常に署名して公開するには、署名する Private Automation Hub を設定する必要があります。
前提条件
-
GPG キーペア。ない場合は、
gpg --full-generate-keyコマンドを使用して生成できます。 - 公開鍵と秘密鍵のペアには、Ansible Automation Platform Hub Operator でコンテンツ署名を設定するための適切なアクセス権があります。
手順
署名スクリプト用の ConfigMap を作成します。作成する ConfigMap には、コレクションおよびコンテナーイメージの署名サービスで使用されるスクリプトが含まれます。
注記このスクリプトは署名サービスの一部として使用され、
PULP_SIGNING_KEY_FINGERPRINT環境変数で指定されたキーを使用し、そのファイルに対する ASCII アーマー形式の分離型gpg署名を生成する必要があります。スクリプトは、次の形式で JSON 構造を出力します。
{"file": "filename", "signature": "filename.asc"}{"file": "filename", "signature": "filename.asc"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのファイル名は、現在の作業ディレクトリー内の相対パスです。ファイル名は、デタッチ署名でも同じにする必要があります。
例: 次のスクリプトはコンテンツの署名を生成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GnuPG 秘密鍵のシークレットを作成します。このシークレットには、署名に使用する GnuPG 秘密鍵がセキュアに保存されます。
gpg --export --armor <your-gpg-key-id> > signing_service.gpg oc create secret generic signing-galaxy --from-file=signing_service.gpg
gpg --export --armor <your-gpg-key-id> > signing_service.gpg oc create secret generic signing-galaxy --from-file=signing_service.gpgCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットには
signing_service.gpgという名前のキーが必要です。AnsibleAutomationPlatform CR を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow