Red Hat Ansible Automation Platform Operator の OpenShift Container Platform へのデプロイ
OpenShift Container Platform に Ansible Automation Platform Operator をインストールして設定する
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ansible Automation Platform に興味をお持ちいただきありがとうございます。Ansible Automation Platform は、Ansible を装備した環境に、制御、ナレッジ、委譲の機能を追加して、チームが複雑かつ複数層のデプロイメントを管理できるように支援する商用サービスです。
このドキュメントは、OpenShift Container Platform に Ansible Automation Platform Operator をデプロイするためのインストール、移行、およびアップグレードの要件を理解するのに役立ちます。
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
このドキュメントの改善に関するご意見がある場合や、エラーを発見した場合は、https://access.redhat.com から Technical Support チームに連絡してください。
第1章 Red Hat OpenShift Container Platform での Red Hat Ansible Automation Platform Operator の計画 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ansible Automation Platform は、Red Hat Enterprise Linux と Red Hat Openshift の両方でサポートされます。
OpenShift Operator は、Red Hat OpenShift Container Platform に複雑な分散ソフトウェアの day 2 操作のインストールおよび自動化に役立ちます。Ansible Automation Platform Operator を使用すると、Red Hat OpenShift Container Platform に Ansible Automation Platform コンポーネントをデプロイして管理できます。
このセクションは、Red Hat OpenShift Container Platform 環境への Red Hat Ansible Automation Platform のインストールを計画するのに役立ちます。インストールを行う前に、サポートされているインストールシナリオを確認し、要件を満たしていることを確認してください。
1.1. Ansible Automation Platform Operator について リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform Operator は、OpenShift 環境に新しい Ansible Automation Platform インスタンスをボタンを押すだけでデプロイできるクラウドネイティブの機能を提供します。Ansible Automation Platform Operator には、Automation Controller および Private Automation Hub のインスタンスをデプロイして管理するリソースタイプが含まれています。また、Automation Controller デプロイメント内でジョブを定義および起動するための Automation Controller ジョブリソースも含まれています。
Kubernetes ネイティブ Operator を使用して Ansible Automation Platform インスタンスをデプロイすると、Red Hat OpenShift Container Platform にデプロイされた Playbook からインスタンスを起動するという利点があります。これには、Red Hat Ansible Automation Platform デプロイメントへのアップグレードおよび完全なライフサイクルサポートが含まれます。
OperatorHub の Red Hat Operator カタログから Ansible Automation Platform Operator をインストールできます。
1.2. OpenShift Container Platform バージョンの互換性 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 2.4 をインストールする Ansible Automation Platform Operator は、OpenShift Container Platform 4.9 以降のバージョンで利用できます。
1.3. Red Hat OpenShift Container Platform のサポート対象のインストールシナリオ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform Web コンソールで OperatorHub を使用して、Ansible Automation Platform Operator をインストールできます。
または、OpenShift Container Platform コマンドラインインターフェイス(CLI) oc から {OperatorPlatform} をインストールできます。
以下のワークフローのいずれかに従って Ansible Automation Platform Operator をインストールし、これを使用して必要な Ansible Automation Platform のコンポーネントをインストールします。
- 最初に Automation Controller カスタムリソース、次に Automation Hub カスタムリソース。
- 最初に Automation Hub カスタムリソース、次に Automation Controller カスタムリソース。
- Automation Controller カスタムリソース。
- Automation Hub カスタムリソース
1.4. カスタムリソース リンクのコピーリンクがクリップボードにコピーされました!
プライマリーインストールワークフローごとにカスタムリソースを定義できます。
1.5. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform OperatorHub の詳細は、OperatorHub について を参照してください。
第2章 Red Hat OpenShift Container Platform に Red Hat Ansible Automation Platform のインストール リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OperatorHub で Red Hat Ansible Automation Platform カタログをインストールした。
-
プラットフォーム用の
StorageClassオブジェクトと、ReadWriteManyアクセスモードの永続ボリューム要求 (PVC) を作成している。詳細は、動的プロビジョニング を参照してください。 ReadWriteManyアクセスモードを使用して Amazon Web Services (AWS) で Red Hat OpenShift Container Platform クラスターを実行するには、NFS またはその他のストレージを追加する必要がある。-
AWS Elastic Block Store (EBS) の詳細、または
aws-ebsストレージクラスの使用については、AWS Elastic Block Store を使用した永続ストレージ を参照してください。 -
AWS EBS のマルチアタッチ
ReadWriteManyアクセスモードを使用するには、Amazon EBS マルチアタッチを使用した複数のインスタンスへのボリュームのアタッチ を参照してください。
-
AWS Elastic Block Store (EBS) の詳細、または
OpenShift クラスターのデフォルト namespace に Ansible Automation Platform をデプロイすることはできません。aap 名前空間が推奨されます。カスタム namespace を使用できますが、Ansible Automation Platform のみを実行する必要があります。
手順
- Red Hat OpenShift Container Platform にログインします。
- → に移動します。
- Red Hat Ansible Automation Platform Operator を検索し、 をクリックします。
Update Channel を選択します。
- stable-2.x: namespace スコープの Operator をインストールします。これにより、Automation Hub および Automation Controller インスタンスのデプロイが、Operator がインストールされている namespace に制限されます。これはほとんどの場合に適しています。stable-2.x チャネルは管理者特権を必要とせず、単一の namespace のみを監視するため、使用するリソースが少なくなります。
- stable-2.x-cluster-scoped: クラスター内の複数の namespace にわたって Automation Hub と Automation Controller をデプロイし、クラスター内のすべての namespace に対して管理者特権を必要とします。
- Installation Mode、Installed Namespace、および Approval Strategy を選択します。
- をクリックします。
インストールプロセスが開始します。インストールが完了すると、指定した namespace に Ansible Automation Platform Operator がインストールされたことを通知するモーダルが表示されます。
検証
- をクリックして、新しくインストールされた Ansible Automation Platform Operator を表示し、以下の Operator カスタムリソースが存在することを確認します。
| Automation Controller | Automation Hub | Event-Driven Ansible (EDA) | Red Hat Ansible Lightspeed |
|---|---|---|---|
|
|
|
|
1 つの namespace にインストールできる Ansible Automation Platform Operator のインスタンスは 1 つだけです。同じ namespace に複数のインスタンスをインストールすると、両方の Operator インスタンスで不適切な操作が発生する可能性があります。
第3章 Red Hat OpenShift Container Platform Web コンソールへの Automation Controller のインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
これらの手順を使用して、Automation Controller Operator を Red Hat OpenShift Container Platform にインストールし、カスタムリソースを指定し、外部データベースを使用して Ansible Automation Platform をデプロイできます。
Automation controller の設定は、Automation controller の extra_settings を通じて、またはデプロイメント後にユーザーインターフェイスで直接行うことができます。ただし、extra_settings で行われた設定は、ユーザーインターフェイスで行われた設定よりも優先されることに注意することが重要です。
Automation Controller のインスタンスが削除されても、関連する PVC は自動的に削除されません。これにより、新しいデプロイメントの名前が前のデプロイメントと同じ場合は、移行中に問題が発生する可能性があります。したがって、同じ namespace に新規 Automation Controller インスタンスをデプロイする前に、古い PVC を手動で削除することが推奨されます。詳細は、PVC の検索および削除 を参照してください。
3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Operator Hub で Red Hat Ansible Automation Platform カタログをインストールした。
- コントローラーの場合、Operator が必要な PVC を動的に作成できるように、クラスター上にデフォルトの StorageClass を設定する必要があります。外部 PostgreSQL データベースが設定されている場合、これは必要ありません。
- Hub の場合は、コンテンツ、Redis、および API Pod に必要な PVC を動的に作成できるように、ReadWriteMany をサポートする StorageClass がクラスター上で使用可能である必要があります。クラスター上のデフォルトの StorageClass ではない場合は、AutomationHub オブジェクトの作成時にそれを指定できます。
3.2. Automation Controller Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、Automation Controller Operator をインストールします。
手順
- → に移動し、Ansible Automation Platform Operator をクリックします。
- Automation controller タブを見つけて、 をクリックします。
Form View または YAML ビューのいずれかを使用してインスタンスの設定を続行できます。
3.2.1. Automation Controller のフォームビューの作成 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、フォームビューを使用して Automation Controller を作成します。
手順
- Form View が選択されていることを確認します。デフォルトで選択されているはずです。
- 新しいコントローラーの名前を入力します。
- オプション: 必要なラベルを追加します。
- をクリックします。
- インスタンスの ホスト名 を入力します。ホスト名はオプションです。デフォルトのホスト名は、選択したデプロイメント名に基づいて生成されます。
- 管理者アカウントのユーザー名 を入力します。
- 管理者の電子メールアドレス を入力します。
- Admin password secret ドロップダウンメニューで、シークレットを選択します。
- Database configuration secret ドロップダウンメニューで、シークレットを選択します。
- Old Database configuration secret ドロップダウンメニューで、シークレットを選択します。
- Secret key secret ドロップダウンメニューで、シークレットを選択します。
- Broadcast Websocket Secret ドロップダウンメニューで、シークレットを選択します。
- 必要な サービスアカウントアノテーション を入力します。
- PostgreSQL Container Storage Requirements ドロップダウンメニューから、requests を選択し、storage フィールドに "100Gi" と入力します。
- をクリックします。
3.2.2. コントローラーイメージのプルポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、Automation Controller でイメージプルポリシーを設定します。
手順
- Red Hat OpenShift Container Platform にログインします。
- → に移動します。
- Ansible Automation Platform Operator のデプロイメントを選択します。
- Automation Controller タブを選択します。
新しいインスタンスの場合は、 をクリックします。
- 既存のインスタンスの場合は、⋮ アイコンをクリックして クリックすると、YAML ビューを編集できます。
をクリックします。Image Pull Policy の下で、ラジオボタンをクリックして選択します。
- Always
- Never
- IfNotPresent
Image Pull Secrets の下にあるオプションを表示するには、矢印をクリックします。
- Add Image Pull Secret の横にある をクリックして、値を入力します。
Web container resource requirements ドロップダウンリストの下にフィールドを表示するには、矢印をクリックします。
- Limits および Requests で、CPU cores、Memory、および Storage の値を入力します。
Task container resource requirements ドロップダウンリストの下にフィールドを表示するには、矢印をクリックします。
- Limits および Requests で、CPU cores、Memory、および Storage の値を入力します。
EE Control Plane container resource requirements ドロップダウンリストの下にフィールドを表示するには、矢印をクリックします。
- Limits および Requests で、CPU cores、Memory、および Storage の値を入力します。
PostgreSQL init container resource requirements (when using a managed service) ドロップダウンリストの下にフィールドを表示するには、矢印をクリックします。
- Limits および Requests で、CPU cores、Memory、および Storage の値を入力します。
Redis container resource requirements ドロップダウンリストの下にフィールドを表示するには、矢印をクリックします。
- Limits および Requests で、CPU cores、Memory、および Storage の値を入力します。
PostgreSQL container resource requirements (when using a managed instance)* ドロップダウンリストの下のフィールドを表示するには、矢印をクリックします。
- Limits および Requests で、CPU cores、Memory、および Storage の値を入力します。
PostgreSQL container storage requirements (when using a managed instance) ドロップダウンリストを表示するには、矢印をクリックします。
Limits および Requests で、CPU cores、Memory、および Storage の値を入力します。
注記Red Hat は、実稼働環境でのアンダーサイズのデータベースを防ぐために、ストレージ要件に 100Gi を使用することを推奨します。
- レプリカで、インスタンスレプリカの数を入力します。
- Remove used secrets on instance removal で、true または false を選択します。デフォルトは false です。
- Preload instance with data upon creation で、true または false を選択します。デフォルトは true です。
3.2.3. コントローラー LDAP セキュリティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、Automation Controller の LDAP セキュリティーを設定します。
手順
ldap_cacert_secretがない場合は、次のコマンドを使用して作成できます。oc create secret generic <resourcename>-custom-certs \ --from-file=ldap-ca.crt=<PATH/TO/YOUR/CA/PEM/FILE> \$ oc create secret generic <resourcename>-custom-certs \ --from-file=ldap-ca.crt=<PATH/TO/YOUR/CA/PEM/FILE> \1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- CA 証明書が保存されている場所を指すようにこれを変更します。
これにより、次のようなシークレットが作成されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Automation Controller は、
ldap_cacert_secretを使用するときに、指定されたシークレットでデータフィールドldap-ca.crtを検索します。
-
LDAP Certificate Authority Trust Bundle でドロップダウンメニューをクリックし、
ldap_cacert_secretを選択します。 - LDAP Password Secret で、ドロップダウンメニューをクリックし、シークレットを選択します。
- EE Images Pull Credentials Secret で、ドロップダウンメニューをクリックし、シークレットを選択します。
- Bundle Cacert Secret で、ドロップダウンメニューをクリックし、シークレットを選択します。
Service Type の下で、ドロップダウンメニューをクリックして選択します。
- ClusterIP
- LoadBalancer
- NodePort
3.2.4. Automation Controller Operator ルートオプションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ansible Automation Platform Operator のインストールフォームを使用すると、Advanced configuration で Automation Controller Operator のルートオプションをさらに設定できます。
手順
- Red Hat OpenShift Container Platform にログインします。
- → に移動します。
- Ansible Automation Platform Operator のデプロイメントを選択します。
- Automation Controller タブを選択します。
新しいインスタンスの場合は、 をクリックします。
- 既存のインスタンスの場合は、⋮ アイコンをクリックして クリックすると、YAML ビューを編集できます。
- をクリックします。
- Ingress type でドロップダウンメニューをクリックし、Route を選択します。
- Route DNS host で、ルートの応答先となる共通のホスト名を入力します。
- Route TLS termination mechanism ドロップダウンメニューをクリックし、Edge または Passthrough を選択します。ほとんどの場合は、Edge を選択する必要があります。
- Route TLS credential secret で、ドロップダウンメニューをクリックし、一覧からシークレットを選択します。
- /var/lib/projects ディレクトリーで永続性を有効にする で、スライダーを動かして true または false を選択します。
3.2.5. Automation Controller Operator の Ingress タイプの設定 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform Operator のインストールフォームを使用すると、Advanced configuration で Automation Controller Operator の Ingress をさらに設定できます。
手順
- Red Hat OpenShift Container Platform にログインします。
- → に移動します。
- Ansible Automation Platform Operator のデプロイメントを選択します。
- Automation Controller タブを選択します。
新しいインスタンスの場合は、 をクリックします。
- 既存のインスタンスの場合は、⋮ アイコンをクリックして クリックすると、YAML ビューを編集できます。
- をクリックします。
- Ingress type でドロップダウンメニューをクリックし、Ingress を選択します。
- Ingress annotations で、Ingress に追加するアノテーションを入力します。
- Ingress TLS secret でドロップダウンメニューをクリックし、一覧からシークレットを選択します。
Automation Controller Operator を設定したら、フォームビューの下部にある をクリックします。Red Hat OpenShift Container Platform は Pod を作成します。これには数分の時間がかかる場合があります。
→ に移動し、新たに作成されたインスタンスを見つけることで、進捗を表示できます。
検証
Automation Controller から 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. Red Hat Ansible Automation Platform Operator に Automation Controller 用の外部データベースを設定する リンクのコピーリンクがクリップボードにコピーされました!
外部データベースを使用して Ansible Automation Platform をデプロイすることを希望するユーザーは、インスタンスの認証情報と接続情報を使用してシークレットを設定し、oc create コマンドを使用してクラスターに適用するとデプロイできるようになります。
デフォルトでは、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 に Automation Controller の外部データベースを設定する手順を説明します。
前提条件
外部データベースが、Ansible Automation Platform の現在のリリースでサポートされているバージョンの PostgreSQL データベースを指定している。
Ansible Automation Platform 2.4 は PostgreSQL 15 をサポートします。
手順
外部の postgres インスタンスの認証情報と接続情報はシークレットに保存する必要があります。この情報は、Automation Controller 仕様に設定されます。
以下のテンプレートに従って、.yaml ファイル
postgres_configuration_secretを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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をクラスターに適用します。oc create -f external-postgres-configuration-secret.yml
$ oc create -f external-postgres-configuration-secret.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow AutomationControllerカスタムリソースオブジェクトを作成するときは、以下の例に従って、仕様にシークレットを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. 予期しない 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.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 行を見つけ、コメントアウトします。
#datestyle = 'Redwood, SHOW_TIME'
#datestyle = 'Redwood, SHOW_TIME'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新たに調整した行のすぐ下に、以下の設定を追加します。
datestyle = 'iso, mdy'
datestyle = 'iso, mdy'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
postgres.confファイルを保存して閉じます。 データベース設定を再読み込みします。
systemctl reload postgresql
# systemctl reload postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドを実行しても、データベース操作が中断されることはありません。
3.5. 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
第4章 Red Hat OpenShift Container Platform Web コンソールへの Automation Hub のインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
これらの手順を使用して、Automation Hub Operator を Red Hat OpenShift Container Platform にインストールし、カスタムリソースを指定し、外部データベースを使用して Ansible Automation Platform をデプロイできます。
Automation Hub の設定は、Automation Hub の pulp_settings を通じて、またはデプロイメント後にユーザーインターフェイスで直接行うことができます。ただし、pulp_settings で行われた設定は、ユーザーインターフェイスで行われた設定よりも優先されることに注意することが重要です。Hub 設定は、Hub のカスタムリソース仕様で常に小文字に設定する必要があります。
Automation Hub のインスタンスが削除されると、PVC は自動的に削除されません。これにより、新しいデプロイメントの名前が前のデプロイメントと同じ場合は、移行中に問題が発生する可能性があります。したがって、同じ namespace に新規 Automation Hub インスタンスをデプロイする前に、古い PVC を手動で削除することが推奨されます。詳細は、PVC の検索および削除 を参照してください。
4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Operator Hub で Ansible Automation Platform Operator をインストールした。
4.2. Automation Hub Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、Automation Hub Operator をインストールします。
手順
- → に移動します。
- Automation hub エントリーを見つけて、 をクリックします。
- をクリックします。
- 新しいコントローラーの名前を入力します。
- オプション: 必要なラベルを追加します。
- をクリックします。
PostgreSQL container storage requirements ドロップダウンメニューから、requests を選択します。
- ストレージ フィールドに "100Gi" と入力します。
PostgreSQL container resource requirements ドロップダウンメニューから、requests を選択します。
- cpu フィールドに 200 と入力します。
- memory フィールドに "512Mi" と入力します。
4.2.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 サーバーが単一障害点となる可能性があります。
4.2.1.1. ReadWriteMany アクセスモードを使用した OCP ストレージのプロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform Operator を正常にインストールするには、最初に Automation Hub のストレージタイプを ReadWriteMany アクセスモードにプロビジョニングする必要があります。
手順
- プロビジョニング をクリックして、アクセスモードを更新します。
-
最初のステップでは、
accessModesをデフォルトのReadWriteOnceからReadWriteManyに更新します。 - 永続ボリューム要求 (PVC) を作成するには、このセクションの追加手順を実施します。
4.2.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>-api
4.2.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>-api
4.2.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 で、ドロップダウンメニューをクリックし、一覧からシークレットを選択します。
4.2.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 エラーがあるかどうかを確認することで、この問題をさらに診断できます。
4.3. OpenShift Container Platform での Ansible Automation Hub の LDAP 認証の設定 リンクのコピーリンクがクリップボードにコピーされました!
Hub インスタンス設定ファイルの spec セクションで、OpenShift Container Platform 上の Ansible Automation Platform の LDAP 認証を設定します。
手順
次の例を使用して、Automation Hub インスタンスで LDAP を設定します。空白のフィールドには、
``と入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
フィールドは空のままにしないでください。変数のないフィールドの場合は、`` と入力してデフォルト値を指定します。
4.4. Automation Hub ユーザーインターフェイスへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
すべての Pod が正常に起動されると、Automation Hub インターフェイスにアクセスできます。
手順
- → に移動します。
- Location で、Automation Hub インスタンスの URL をクリックします。
Automation Hub のユーザーインターフェイスが起動し、Operator の設定プロセス中に指定された管理者の認証情報を使用してサインインできます。
設定中に管理者パスワードを指定しなかった場合は、自動的に作成されます。このパスワードを確認するには、プロジェクトに移動し、 → を選択して、controller-admin-password を開きます。そこからパスワードをコピーして、Automation Hub のパスワードフィールドに貼り付けることができます。
4.5. 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.4 は PostgreSQL 15 をサポートします。
手順
外部の postgres インスタンスのクレデンシャルと接続情報はシークレットに保存する必要があります。シークレットは Automation Hub の仕様に設定されます。
以下のテンプレートに従って、.yaml ファイル
postgres_configuration_secretを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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をクラスターに適用します。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
4.5.1. Automation Hub PostgreSQL データベースの hstore 拡張機能の有効化 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 2.4 以降、データベース移行スクリプトは hstore フィールドを使用して情報を保存するため、Automation Hub PostgreSQL データベースの hstore 拡張機能を有効にする必要があります。
Ansible Automation Platform インストーラーとマネージド PostgreSQL サーバーを使用する場合、このプロセスは自動的に行われます。
PostgreSQL データベースが外部にある場合は、Automation Hub をインストールする前に、Automation Hub PostreSQL データベースの hstore 拡張機能を手動で有効にする必要があります。
Automation Hub のインストール前に 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 次のコマンドを使用して、Automation Hub データベースに
hstorePostgreSQL 拡張機能を作成します。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 その出力は次のとおりです。
CREATE EXTENSION
CREATE EXTENSIONCopy 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
4.6. 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
4.7. 追加の設定 リンクのコピーリンクがクリップボードにコピーされました!
コレクションのダウンロード数は、コレクションの使用状況を把握するのに役立ちます。コレクションのダウンロード数を 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章 Red Hat OpenShift Container Platform CLI からの Red Hat Ansible Automation Platform Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、oc コマンドを使用して、OpenShift Container Platform コマンドラインインターフェイス (CLI) から Red Hat OpenShift Container Platform に Ansible Automation Platform Operator をインストールします。
5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Operator をインストールするパーミッションを持つアカウントを使用して Red Hat OpenShift Container Platform にアクセスできる。
-
OpenShift Container Platform CLI
ocコマンドがローカルシステムにインストールされている。詳細は、Red Hat OpenShift Container Platform 製品ドキュメントの OpenShift CLI のインストール を参照してください。
5.2. namespace への Ansible Automation Platform Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、namespace を Operator にサブスクライブします。
OpenShift クラスターのデフォルト namespace に Ansible Automation Platform をデプロイすることはできません。aap 名前空間が推奨されます。カスタム namespace を使用できますが、Ansible Automation Platform のみを実行する必要があります。
手順
Operator にプロジェクトを作成します。
oc new-project ansible-automation-platform
oc new-project ansible-automation-platformCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
sub.yamlという名前のファイルを作成します。 以下の YAML コードを
sub.yamlファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このファイルは、
ansible-automation-platformnamespace をansible-automation-platform-operatorOperator にサブスクライブするansible-automation-platformというSubscriptionオブジェクトを作成します。次に、
ansible-automation-platformnamespace にexampleという名前のAutomationControllerオブジェクトを作成します。exampleの Automation Controller 名を変更するには、sub.yamlのkind: AutomationControllerセクションの name フィールドを編集し、<automation_controller_name>を、使用する名前に置き換えます。apiVersion: automationcontroller.ansible.com/v1beta1 kind: AutomationController metadata: name: <automation_controller_name> namespace: ansible-automation-platform
apiVersion: automationcontroller.ansible.com/v1beta1 kind: AutomationController metadata: name: <automation_controller_name> namespace: ansible-automation-platformCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc applyコマンドを実行して、sub.yamlファイルで指定されたオブジェクトを作成します。oc apply -f sub.yaml
oc apply -f sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
namespace が ansible-automation-platform-operator Operator に正常にサブスクライブされたことを確認するには、oc get subs コマンドを実行します。
oc get subs -n ansible-automation-platform
$ oc get subs -n ansible-automation-platform
namespace を Operator にサブスクライブする方法は、Red Hat OpenShift Container Platform Operators ガイドの CLI を使用した OperatorHub からのインストール を参照してください。
OpenShift Container Platform CLI を使用して、作成した Automation Controller の Web アドレスとパスワードを取得できます。
5.3. OpenShift Container Platform CLI からの Automation Controller ログインの詳細の取得 リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller にログインするには、Web アドレスとパスワードが必要です。
5.3.1. Automation Controller の Web アドレスの取得 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform ルートは、外部クライアントが名前でサービスに到達できるように、ホスト名でサービスを公開します。Automation Controller インスタンスを作成した時に、そのルートが作成されました。ルートは、YAML ファイルで Automation Controller オブジェクトに割り当てた名前を継承します。
以下のコマンドを使用してルートを取得します。
oc get routes -n <controller_namespace>
oc get routes -n <controller_namespace>
以下の例では、Automation Controller の example は ansible-automation-platform namespace で実行されています。
oc get routes -n ansible-automation-platform
$ oc get routes -n ansible-automation-platform
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
example example-ansible-automation-platform.apps-crc.testing example-service http edge/Redirect None
Automation Controller インスタンスのアドレスは、example-ansible-automation-platform.apps-crc.testing です。
5.3.2. Automation Controller のパスワードの取得 リンクのコピーリンクがクリップボードにコピーされました!
sub.yaml の Automation Controller インスタンスの YAML ブロックは、name および admin_user キーに値を割り当てます。以下のコマンドのこれらの値を使用して、Automation Controller インスタンスのパスワードを取得します。
oc get secret/<controller_name>-<admin_user>-password -o yaml
oc get secret/<controller_name>-<admin_user>-password -o yaml
admin_user のデフォルト値は admin です。sub.yaml で admin ユーザー名を変更した場合は、コマンドを変更します。
以下の例では、example という名前の Automation Controller オブジェクトのパスワードを取得します。
oc get secret/example-admin-password -o yaml
oc get secret/example-admin-password -o yaml
Automation Controller インスタンスのパスワードは、出力の metadata フィールドに表示されます。
この例では、パスワードは 88TG88TG88TG88TG88TG88TG88TG88TG です。
Event-Driven Ansible Controller は、イベント駆動型自動化のためのインターフェイスであり、IT リクエストの自動解決を導入するものです。このコンポーネントは、イベントのソースに接続し、ルールブックを使用してそれらのイベントを操作するのに役立ちます。Event-Driven Ansible Controller をデプロイすると、決定を自動化し、多数のイベントソースを使用して、複数の IT ユースケース内で、そして複数の IT ユースケースをまたいでイベント駆動型の自動化を実装し、より効率的なサービス提供を実現できます。
次の手順を使用して、OpenShift Container Platform の Ansible Automation Platform Operator を使用して Event-Driven Ansible をインストールします。
前提条件
- Ansible Automation Platform Operator を OpenShift Container Platform にインストールしている。
- Automation Controller をインストールして設定している。
手順
- → を選択します。
- Ansible Automation Platform のインストールを見つけて選択します。
- Details タブで EDA モーダルを見つけ、Create instance をクリックします。
をクリックし、Name フィールドに、新しい Event-Driven Ansible Controller デプロイメントの名前を入力します。
重要現在の OpenShift Container Platform の namespace に他の Ansible Automation Platform コンポーネントがインストールされている場合は、Event-Driven Ansible カスタムリソースを作成するときに、必ず Event-Driven Ansible Controller に一意の名前を指定してください。これを怠ると、名前の競合が発生し、Event-Driven Ansible コントローラーのデプロイメントに影響が及ぶ可能性があります。
Automation Server URL フィールドにコントローラー URL を指定します。
Openshift にも Automation Controller をデプロイしている場合は、ナビゲーションパネルの → の下に URL が表示されます。
注記必須のカスタマイズはこれだけですが、必要に応じて、UI フォームを使用するか、YAML 設定タブで直接他のオプションをカスタマイズできます。
重要Event-Driven Ansible の同時アクティベーションを効率的に実行できるようにするには、クラスターで利用可能なリソースに比例してアクティブ化の最大数を設定する必要があります。これは、YAML ビューで Event-Driven Ansible 設定を調整することで実行できます。
標準条件下で Event-Driven Ansible ルールブックをアクティブ化すると、約 250 MB のメモリーが使用されます。ただし、実際のメモリー消費量は、ルールの複雑さと処理されるイベントのボリュームおよびサイズによって大幅に異なる可能性があります。大量のイベントが予想される場合やルールブックの複雑さが高いシナリオでは、ステージング環境でのリソース使用量の事前評価を行います。これにより、アクティベーションの最大数はリソースの容量に基づいて行われます。
- をクリックして、YAML キーの値を更新します。
specキー値セクションの最後に次の文字列をコピーして貼り付けます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow をクリックします。これにより、指定した namespace に Event-Driven Ansible Controller がデプロイされます。
数分後、インストールが Successful とマークされたら、OpenShift UI の Routes ページで Event-Driven Ansible UI の URL を確認できます。
ナビゲーションパネルから → を選択し、作成された新しい Route URL を見つけます。
ルートはカスタムリソースの名前に基づいてリストされます。
- Location 列の下にある新しい URL をクリックして、ブラウザーで Event-Driven Ansible に移動します。
ナビゲーションパネルから → を選択し、作成された管理者パスワード k8s シークレットを見つけます (カスタムパスワードを指定した場合を除く)。
シークレットはカスタムリソースの名前に基づいてリストされます。シークレットの末尾には
-admin-passwordが付いています。注記シークレットのパスワードの値を使用して、Event-Driven Ansible Controller UI にログインできます。デフォルトのユーザーは
adminです。
第7章 Automation Hub での Red Hat Single Sign-On Operator の使用 リンクのコピーリンクがクリップボードにコピーされました!
Private Automation Hub は、認証に Red Hat Single Sign-On を使用します。
Red Hat Single Sign-On Operator はリソースを作成および管理します。この Operator を使用してカスタムリソースを作成し、Openshift で Red Hat Single Sign-On 管理を自動化します。
- 仮想マシン (VM) に Ansible Automation Platform をインストールする場合、インストーラーは Red Hat Single Sign-On を Private Automation Hub で使用するために自動的にインストールおよび設定できます。
- Ansible Automation Platform を Red Hat OpenShift Container Platform にインストールする場合は、Single Sign-On を個別にインストールする必要があります。
この章では、Red Hat Single Sign-On を設定し、Ansible Automation Platform が OpenShift Container Platform にインストールされている場合に Private Automation Hub と統合するプロセスを説明します。
前提条件
- Operator をインストールするパーミッションを持つアカウントを使用して Red Hat OpenShift Container Platform にアクセスできる。
- Red Hat Ansible Automation Platform Operator が含まれるカタログをインストールしている。
- Red Hat Single Sign-On Operator をインストールしている。Red Hat Single Sign-On Operator をインストールするには、Red Hat Single Sign-On ドキュメントの カスタムリソースを使用した Red Hat Single Sign-On のインストール の手順に従います。
7.1. Keycloak インスタンスの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Single Sign-On Operator のインストール時に、Ansible Automation Platform で使用する Keycloak インスタンスを作成できます。
ここから、外部の Postgres を指定するか、指定しないは作成されます。
手順
- → に移動します。
-
rh-ssoプロジェクトを選択します。 - Red Hat Single Sign-On Operator を選択します。
- Red Hat Single Sign-On Operator の詳細ページで、 を選択します。
- をクリックします。
をクリックします。
デフォルトの Keycloak カスタムリソースは次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - をクリックします。
- デプロイメントが完了すると、この認証情報を使用して管理コンソールにログインできます。
-
管理者の認証情報は、namespace の
credential-<custom-resource>(keycloak の例) シークレットにあります。
7.2. Ansible Automation Platform の Keycloak レルムの作成 リンクのコピーリンクがクリップボードにコピーされました!
ユーザー、認証情報、ロール、およびグループのセットを管理するレルムを作成します。ユーザーはレルムに属し、レルムにログインします。レルムは相互に分離され、制御するユーザーのみを管理および認証できます。
手順
- → に移動します。
- Red Hat Single Sign-On Operator プロジェクトを選択します。
- Keycloak Realm タブを選択し、 をクリックします。
Keycloak Realm フォームで、 を選択します。YAML ファイルを次のように編集します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand フィールド
説明
metadata.name設定リソース (CR) の名前のメタデータに一意の値を設定します。
metadata.namespace設定リソース (CR) の名前のメタデータに一意の値を設定します。
metadata.labels.appラベルを一意の値に設定します。これは、クライアント CR を作成するときに使用されます。
metadata.labels.realmラベルを一意の値に設定します。これは、クライアント CR を作成するときに使用されます。
spec.realm.idレルム名と ID を設定します。同じものを設定する必要があります。
spec.realm.realmレルム名と ID を設定します。同じものを設定する必要があります。
spec.realm.displayname表示する名前を設定します。
- をクリックし、プロセスが完了するまで待ちます。
7.3. Keycloak クライアントの作成 リンクのコピーリンクがクリップボードにコピーされました!
Keycloak クライアントは、Red Hat Single Sign-On を使用してハブユーザーを認証します。ユーザーが認証すると、リクエストは Keycloak クライアントを通過します。Single Sign-On が OAuth トークンを検証または発行すると、クライアントは Automation Hub に応答を提供し、ユーザーはログインできるようになります。
手順
- → に移動します。
- Red Hat Single Sign-On Operator プロジェクトを選択します。
- Keycloak Client タブを選択し、 をクリックします。
- Keycloak Realm フォームで、 を選択します。
デフォルトの YAML ファイルを次のものに置き換えます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- これを一意の値に置き換えます。
- をクリックし、プロセスが完了するまで待ちます。
Automation Hub がデプロイされたら、Red Hat Single Sign-On クライアントの更新 で説明されているように、「有効なリダイレクト URI」と「Web オリジン」でクライアントを更新する必要があります。さらに、クライアントにはトークンマッパーが事前設定されています。認証プロバイダーがグループデータを Red Hat SSO に提供しない場合は、その情報がどのように渡されるかを反映するようにグループマッピングを更新する必要があります。これは通常、ユーザー属性によるものです。
7.4. Keycloak ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、スーパー管理者権限で Automation Hub にログインできる、hubadmin ロールを持つ Keycloak ユーザーを作成します。
手順
- → に移動します。
- Red Hat Single Sign-On Operator プロジェクトを選択します。
- Keycloak Realm タブを選択し、 をクリックします。
- Keycloak User フォームで、 を選択します。
デフォルトの YAML ファイルを次のものに置き換えます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - をクリックし、プロセスが完了するまで待ちます。
ユーザーが作成されると、Operator は credential-<realm name>-<username>-<namespace> という命名パターンを使用してユーザー名とパスワードの両方を含む Secret を作成します。この例では、認証情報は credential-ansible-automation-platform-hub-admin-rh-sso と呼ばれます。ユーザーが作成されると、Operator はユーザーのパスワードを更新しません。パスワードの変更はシークレットに反映されません。
7.5. Red Hat Single Sign-On 接続シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、Red Hat Single Sign-On の接続シークレットを作成します。
手順
-
https://<sso_host>/auth/realms/ansible-automation-platformに移動します。 -
public_key値をコピーします。 - OpenShift Web UI で、 → に移動します。
- ansible-automation-platform プロジェクトを選択します。
- をクリックし、 を選択します。
次の YAML を編集してシークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - をクリックし、プロセスが完了するまで待ちます。
7.6. Ansible Automation Platform Operator を使用した Automation Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform Operator を使用して Automation Hub をインストールするには、次の手順を使用します。
手順
- → に移動します。
- Ansible Automation Platform Operator のデプロイメントを選択します。
- Automation Hub タブを選択します。
- をクリックします。
を選択します。YAML は次のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- インスタンスに使用する名前に metadata.name を設定します。
- 2
- spec.sso_secret を、Red Hat Single Sign On 接続の詳細を保持するためにシークレットを作成 で作成したシークレットの名前に設定します。
- 3
web_replicasまたはtask_replicasをそれぞれ使用して、デプロイメントごとにレプリカをスケールアップまたはスケールダウンします。ここで、N は作成するレプリカの数を表します。あるいは、replicasを使用して、両方のデプロイメントにわたってすべての Pod をスケーリングすることもできます。詳細は、Scaling the Web and Task Pods independently を参照してください。
注記この YAML は SSL 検証をオフにします (
ssl_verify: false)。OpenShift に自己署名証明書を使用していない場合は、この設定を削除できます。- をクリックし、プロセスが完了するまで待ちます。
7.7. 許可されたレジストリーを Automation Controller イメージ設定に追加する リンクのコピーリンクがクリップボードにコピーされました!
Automation Hub にコンテナーイメージをデプロイする前に、Automation Controller イメージ設定の allowedRegistries にレジストリーを追加する必要があります。これを行うには、以下のコードをコピーして Automation Controller イメージ YAML に貼り付けます。
手順
- Red Hat OpenShift Container Platform にログインします。
- → に移動します。
- Resources ドロップダウンリストを選択し、Image と入力します。
- Image (config,openshift.io/v1) を選択します。
- Name の見出しの下にある をクリックします。
- タブを選択します。
次のように spec value の下に貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - をクリックします。
7.8. Automation Hub ルートの決定 リンクのコピーリンクがクリップボードにコピーされました!
ハブルートを決定するには、次の手順を使用します。
手順
- → に移動します。
- インストールに使用したプロジェクトを選択します。
-
private-ah-web-svcサービスの場所をコピーします。Automation Hub インスタンスの作成時に別の名前を使用した場合は、サービスの名前が異なります。これは、後で Red Hat Single Sign-On クライアントを更新するために使用されます。
7.9. Red Hat Single Sign-On クライアントの更新 リンクのコピーリンクがクリップボードにコピーされました!
Automation Hub がインストールされ、インスタンスの URL がわかっている場合は、Red Hat Single Sign-On を更新して、有効なリダイレクト URI と Web オリジンの設定を設定する必要があります。
手順
- → に移動します。
- RH-SSO プロジェクトを選択します。
- をクリックします。
- を選択します。
- automation-hub-client-secret client クライアントをクリックします。
- を選択します。
クライアント YAML を更新して、Valid Redirect URIs 設定と Web Origins 設定を追加します。
redirectUris: - 'https://private-ah-ansible-automation-platform.apps-crc.testing/*' webOrigins: - 'https://private-ah-ansible-automation-platform.apps-crc.testing'
redirectUris: - 'https://private-ah-ansible-automation-platform.apps-crc.testing/*' webOrigins: - 'https://private-ah-ansible-automation-platform.apps-crc.testing'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand フィールド
説明
redirectURIsこれは、Automation Hub ルートの決定 で決定されたロケーションです。/* を
redirectUris設定の末尾に必ず追加してください。webOriginsこれは、Automation Hub ルートの決定 で決定されたロケーションです。
注記これらの設定を入力するときは、インデントが正しいことを確認してください。
- をクリックします。
接続を確認するには
- Automation Hub ルートに移動します。
-
hub_adminユーザー認証情報を入力してサインインします。 - Red Hat Single Sign-On は認証を処理し、Automation Hub にリダイレクトします。
7.10. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform での Operator の実行に関する詳細は、OpenShift Container Platform 製品ドキュメントの OpenShift Container Platform での Operator の使用 を参照してください。
第8章 Red Hat Ansible Automation Platform から Red Hat Ansible Automation Platform Operator への移行 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ansible Automation Platform デプロイメントを Ansible Automation Platform Operator に移行すると、Kubernetes ネイティブ Operator が提供する利点を活用できます。これには、Red Hat Ansible Automation Platform デプロイメントの簡単なアップグレードや完全なライフサイクルサポートが含まれます。
以下のいずれかのデプロイメントを Ansible Automation Platform Operator に移行するには、この章の手順を使用してください。
- Ansible Tower 3.8.6、Automation Controller、または Automation Hub の仮想マシンベースのインストール
- Ansible Tower 3.8.6 の Openshift インスタンス (Ansible Automation Platform 1.2)
8.1. 移行に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform 3 で Ansible Automation Platform 1.2 から OpenShift Container Platform 4 の Ansible Automation Platform 2.x にアップグレードする場合は、新規の OpenShift Container Platform バージョン 4 クラスターをプロビジョニングし、Ansible Automation Platform を新規クラスターに移行する必要があります。
8.2. 移行の準備 リンクのコピーリンクがクリップボードにコピーされました!
現在の Ansible Automation Platform デプロイメントを Ansible Automation Platform Operator に移行する前に、既存のデータのバックアップを作成し、シークレットキーおよび postgresql 設定の k8s シークレットを作成します。
Automation Controller と Automation Hub インスタンスの両方を移行する場合は、秘密鍵のシークレットの作成 と postgresql 設定シークレットの作成 の手順を繰り返し、データの Ansible Automation Platform Operator への移行 に進みます。
8.2.1. Ansible Automation Platform Operator への移行 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
Ansible Automation Platform デプロイメントを Ansible Automation Platform Operator に移行するには、以下が必要です。
- 秘密鍵のシークレット
- Postgresql の設定
- 新しい OpenShift クラスターの namespace のロールベースアクセス制御
- 新しい OpenShift クラスターは、以前の PostgreSQL データベースに接続可能である必要があります。
Red Hat Ansible Automation Platform の初期インストールの前に、秘密鍵情報をインベントリーファイルに保存できます。秘密鍵を覚えていない場合や、インベントリーファイルを見つけられない場合は、Red Hat カスタマーポータルから Ansible サポート にお問い合わせください。
Ansible Automation Platform 2.x 以前からデータを移行する前に、失われた防止のためにデータのバックアップを作成する必要があります。データをバックアップするには、以下の手順を実施します。
手順
- 現在のデプロイメントプロジェクトにログインします。
setup.shを実行して、現在のデータまたはデプロイメントのバックアップを作成します。バージョン 2.x 以前のオンプレミスデプロイメントの場合:
./setup.sh -b
$ ./setup.sh -bCopy to Clipboard Copied! Toggle word wrap Toggle overflow バージョン 2.0 より前の OpenShift デプロイメント (非 Operator デプロイメント) の場合:
./setup_openshift.sh -b
./setup_openshift.sh -bCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.2. 秘密鍵のシークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
データを OpenShift Container Platform の Ansible Automation Platform Operator に移行するには、秘密鍵を作成する必要があります。Automation Controller、Automation Hub、およびイベント駆動型 Ansible を移行する場合は、初回インストール時にインベントリーファイルで定義された秘密鍵と一致する秘密鍵ごとに秘密鍵が必要です。そうしないと、移行されたデータが暗号化されたままになり、移行後に使用できなくなります。
カスタムリソースで対称暗号化キーを指定する場合、Automation Controller の場合は、このフィールドは secret_key_name と呼ばれることに注意してください。ただし、Automation Hub と Event-Driven Ansible の場合、このフィールドは db_fields_encryption_secret と呼ばれます。
Kubernetes のシークレットでは、Automation Controller と Event-Driven Ansible は同じ stringData キー(secret_key)を使用しますが、Automation Hub は別のキー(database_fields.symmetric.key)を使用します。
手順
- 以前のインストールで Ansible Automation Platform のデプロイに使用したインベントリーファイルで古い秘密鍵を見つけます。
秘密鍵の YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記admin_password_secretが指定されていない場合、Operator が<resourcename>-admin-passwordという名前のシークレットで管理者パスワードを検索します。存在しない場合、Operator はパスワードを生成し、そのパスワードから<resourcename>-admin-passwordという名前のシークレットを作成します。秘密鍵 YAML をクラスターに適用します。
oc apply -f <yaml-file>
oc apply -f <yaml-file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.3. postgresql 設定シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
移行を成功させるには、既存のデプロイメントのデータベースへのアクセスを提供する必要があります。
手順
postgresql 設定シークレットの yaml ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - postgresql 設定の yaml をクラスターに適用します。
oc apply -f <old-postgres-configuration.yml>
oc apply -f <old-postgres-configuration.yml>
8.2.4. ネットワーク接続の確認 リンクのコピーリンクがクリップボードにコピーされました!
データの移行を成功させるには、新しい Operator デプロイメントから以前のデプロイメントデータベースへのネットワーク接続があることを確認します。
前提条件
既存のデプロイメントのホストおよびポート情報を書き留めておきます。この情報は、conf.d ディレクトリーにある postgres.py ファイルにあります。
手順
yaml ファイルを作成して、新しいデプロイメントと以前のデプロイメントデータベース間の接続を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 接続チェッカーの yaml ファイルを新規プロジェクトのデプロイメントに適用します。
oc project ansible-automation-platform oc apply -f connection_checker.yaml
oc project ansible-automation-platform oc apply -f connection_checker.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 接続チェッカー Pod が実行されていることを確認します。
oc get pods
oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod シェルに接続します。
oc rsh dbchecker
oc rsh dbcheckerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod でシェルセッションが開いたら、新規プロジェクトが古いプロジェクトクラスターに接続できることを確認します。
pg_isready -h <old-host-address> -p <old-port-number> -U awx
pg_isready -h <old-host-address> -p <old-port-number> -U awxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
<old-host-address>:<old-port-number> - accepting connections
<old-host-address>:<old-port-number> - accepting connectionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3. Ansible Automation Platform Operator へのデータの移行 リンクのコピーリンクがクリップボードにコピーされました!
秘密鍵 postgresql 認証情報を設定し、ネットワーク接続を検証し、Ansible Automation Platform Operator をインストールした後に、データを移行する前にカスタムリソースコントローラーオブジェクトを作成する必要があります。
8.3.1. AutomationController オブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して AutomationController カスタムリソースオブジェクトを作成します。
手順
- Red Hat OpenShift Container Platform にログインします。
- → に移動します。
- プロジェクトの namespace にインストールされている Ansible Automation Platform Operator を選択します。
- Automation Controller タブを選択します。
をクリックします。オブジェクトは、Form view または YAML view から作成できます。Form view では次の入力を使用できます。
- 新しいデプロイメントの名前を入力します。
Advanced configurations:
- Secret Key リストから secret key secret を選択します。
- Old Database Configuration Secret リストから、old postgres configuration secret を選択します。
- をクリックします。
8.3.2. AutomationHub オブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
AutomationHub カスタムリソースオブジェクトを作成するには、以下の手順を使用します。
手順
- Red Hat OpenShift Container Platform にログインします。
- → に移動します。
- プロジェクトの namespace にインストールされている Ansible Automation Platform Operator を選択します。
- Automation Hub タブを選択します。
- をクリックします。
- 新しいデプロイメントの名前を入力します。
- Advanced configurations で、secret key secret と postgres configuration secret を選択します。
- をクリックします。
8.4. 移行後のクリーンアップ リンクのコピーリンクがクリップボードにコピーされました!
データの移行後に、不要なインスタンスグループを削除し、以前のデータベース設定シークレット を Automation Controller リソース定義からリンクを解除します。
8.4.1. 移行後のインスタンスグループの削除 リンクのコピーリンクがクリップボードにコピーされました!
手順
移行時に作成したパスワードを使用して、管理者として Red Hat Ansible Automation Platform にログインします。
注記注記:移行時に管理者パスワードを作成しなかった場合、パスワードは自動的に作成されています。このパスワードを確認するには、プロジェクトに移動し、 → を選択して、controller-admin-password を開きます。そこから、パスワードをコピーして、Red Hat Ansible Automation Platform password フィールドに貼り付けることができます。
- → を選択します。
- コントロールプレーンとデフォルトを除くすべてのインスタンスグループを選択します。
- をクリックします。
8.4.2. 移行後の古いデータベース設定シークレットのリンク解除 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat OpenShift Container Platform にログインします。
- → に移動します。
- プロジェクトの namespace にインストールされている Ansible Automation Platform Operator を選択します。
- Automation Controller タブを選択します。
- AutomationController オブジェクトをクリックします。次に、Form view または YAML view でオブジェクトを表示できます。以下の入力は、YAML ビュー で利用できます。
-
YAML コンテンツの spec セクションで
old_postgres_configuration_secret項目を見つけます。 - この項目を含む行を削除します。
- をクリックします。
第9章 Red Hat OpenShift Container Platform での Red Hat Ansible Automation Platform Operator のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform Operator は、OpenShift Container Platform 環境での新しい Red Hat Ansible Automation Platform インスタンスのインストール、アップグレード、およびデプロイメントを簡素化します。
9.1. アップグレードに関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ansible Automation Platform バージョン 2.0 は、Ansible Automation Platform Operator の最初のリリースです。バージョン 2.0 からアップグレードする場合は、Ansible Automation Platform Operator のアップグレード の手順に進みます。
アップグレード先の Red Hat Ansible Automation Platform バージョンでサポートされていないバージョンの OpenShift Container Platform を使用している場合は、アップグレードを行う前に、OpenShift Container Platform クラスターをサポートされているバージョンにアップグレードする必要があります。
必要な OpenShift Container Platform のバージョンを判断するには、Red Hat Ansible Automation Platform のライフサイクル を参照してください。
クラスターのアップグレードに関する詳細は、クラスターの更新 を参照してください。
9.2. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
新しいバージョンの Ansible Automation Platform Operator にアップグレードするには、以下を行うことが推奨されます。
- AutomationControllerBackup および AutomationHubBackup オブジェクトを作成します。このサポートについては、Red Hat Ansible Automation Platform バックアップリソースの作成 を参照してください。
- アップグレードする新しい Ansible Automation Platform バージョンと中間バージョンのリリースノートを確認してください。
9.3. Ansible Automation Platform Operator のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform で最新バージョンの Ansible Automation Platform Operator にアップグレードするには、以下を実行します。
手順
- OpenShift Container Platform にログインします。
- → に移動します。
- Subscriptions タブを選択します。
- Upgrade status で、 をクリックします。
- をクリックします。
- をクリックします。
第10章 Red Hat Ansible Automation Platform Operator への実行ノードの追加 リンクのコピーリンクがクリップボードにコピーされました!
インストールバンドルをダウンロードしてインストールすることで、実行ノードとともに Ansible Automation Platform Operator を有効にできます。
前提条件
- Automation Controller のインスタンス。
- receptor コレクションパッケージがインストールされている。
-
AAP リポジトリー
ansible-automation-platform-2.4-for-rhel-{RHEL-RELEASE-NUMBER}-x86_64-rpmsが有効化されている。
手順
- Red Hat Ansible Automation Platform にログインします。
- ナビゲーションパネルで、 → を選択します。
- をクリックします。
- Host Name フィールドに実行ノードのドメイン名または IP を入力します。
- オプション: Listener Port フィールドにポート番号を入力します。
- をクリックします。
-
Install Bundle の横にあるダウンロードアイコン
をクリックします。ダウンロードが始まります。ファイルの保存場所をメモしておきます。
gz ファイルを展開します。
注記install_receptor.ymlPlaybook を実行するには、Ansible Galaxy から receptor コレクションをインストールする必要があります (Ansible-galaxy collection install -r requirements.yml)。ユーザー名と SSH 秘密鍵ファイルを使用して Playbook を更新します。
ansible_hostに、先ほど入力したホスト名が事前に入力されていることに注意してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ターミナルを開き、Playbook を保存したディレクトリーに移動します。
バンドルをインストールするために、次のコマンドを実行します。
ansible-playbook install_receptor.yml -i inventory.yml
ansible-playbook install_receptor.yml -i inventory.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - インストールしたら、作成したインスタンスの Playbook をダウンロードして再実行することで、実行ノードをアップグレードできます。
検証
receptor サービスのステータスを確認するには、次のコマンドを実行します。
sudo systemctl status receptor.service
sudo systemctl status receptor.service
サービスが active (running) 状態であることを確認します。
新しいノードで Playbook が正しく実行されるかどうかを確認するには、次のコマンドを実行します。
watch podman ps
watch podman ps
関連情報
- インスタンスグループの管理の詳細は、Automation Controller ユーザーガイドの インスタンスグループの管理 セクションを参照してください。
第11章 Ansible Automation Platform Resource Operator リンクのコピーリンクがクリップボードにコピーされました!
11.1. リソース Operator の概要 リンクのコピーリンクがクリップボードにコピーされました!
リソース Operator は、Automation Controller デプロイメントを作成した後にデプロイできるカスタムリソース (CR) です。Resource Operator を使用すると、YAML ファイルを使用してプロジェクト、ジョブテンプレート、およびインベントリーを定義できます。これらの YAML ファイルは、Automation Controller によってこれらのリソースを作成するために使用されます。YAML コードのキーと値の入力を求める Form view を通じて YAML を作成できます。あるいは、YAML を直接操作するには、YAML view を選択します。
現在、Resource Operator によって提供されるカスタムリソースは 2 つあります。
- AnsibleJob: Kubernetes シークレット (Automation Controller ホスト URL、トークン) で指定された Automation Controller インスタンスでジョブを起動します。
- JobTemplate: 指定された Automation Controller インスタンスにジョブテンプレートを作成します。
11.2. Resource Operator の使用 リンクのコピーリンクがクリップボードにコピーされました!
Resource Operator 自体は、ユーザーがオブジェクトを作成するまで何も実行しません。ユーザーが AutomationControllerProject または AnsibleJob リソースを作成するとすぐに、Resource Operator がそのオブジェクトの処理を開始します。
前提条件
- 選択した Kubernetes ベースのクラスターをインストールします。
-
automation-controller-operatorを使用して Automation Controller をデプロイします。
クラスターに automation-controller-resource-operator をインストールした後、Automation Controller インスタンスの接続情報を含む Kubernetes (k8s) シークレットを作成する必要があります。次に、リソース Operator を使用して、Automation Controller インスタンスを管理するための k8s リソースを作成できます。
11.3. リソース Operator の Automation Controller への接続 リンクのコピーリンクがクリップボードにコピーされました!
リソース Operator を Automation Controller に接続するには、Automation Controller インスタンスの接続情報を含む k8s シークレットを作成する必要があります。
手順
Automation Controller UI でユーザーの OAuth2 トークンを作成するには、以下を行います。
- ナビゲーションパネルから、 → を選択します。
- トークンを作成するユーザー名を選択します。
- をクリックし、 をクリックします。
- Applications は空のままにしておくことができます。説明を追加し、Scope に Read または Write を選択します。
あるいは、create_oauth2_token 管理コマンドを使用して、コマンドラインで OAuth2 トークンを作成することもできます。
controller-manage create_oauth2_token --user example_user
$ controller-manage create_oauth2_token --user example_user
New OAuth2 token for example_user: j89ia8OO79te6IAZ97L7E8bMgXCON2
トークンを作成するときは、有効なユーザーを指定してください。そうでない場合は、ユーザーを指定せずにコマンドを発行しようとしたか、存在しないユーザー名を指定したというエラーメッセージが表示されます。
11.4. Resource Operator の Automation Controller 接続シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
接続情報をリソース Operator が利用できるようにするには、トークンとホスト値を使用して k8s シークレットを作成します。
手順
以下は、接続シークレットの YAML の例です。次の例をファイル (例:
automation-controller-connection-secret.yml) に保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ホストとトークンの値を使用してファイルを編集します。
-
kubectl createコマンドを実行して、これをクラスターに適用します。
kubectl create -f controller-connection-secret.yml
kubectl create -f controller-connection-secret.yml
11.5. AnsibleJob の作成 リンクのコピーリンクがクリップボードにコピーされました!
AnsibleJob リソースを作成して、Automation Controller で自動化ジョブを起動します。
手順
起動する接続シークレットとジョブテンプレートを指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリー、追加変数、ジョブの有効期間などの機能を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記インベントリーや追加変数を設定する場合は、起動時にプロンプトを有効にする必要があります。Prompt on launch を有効にするには、Automation Controller UI 内で、 → ページでテンプレートを選択し、Inventory セクションと Variables セクションの横にある Prompt on launch チェックボックスをオンにします。
job_template_nameの代わりにworkflow_template_nameを指定して、AnsibleJob オブジェクトでワークフロージョブテンプレートを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.6. JobTemplate の作成 リンクのコピーリンクがクリップボードにコピーされました!
JobTemplate リソースを作成して、Automation Controller にジョブテンプレートを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow