7.2. OpenShift Container Platform
移行先の OpenShift Container Platform 環境を準備および評価し、移行したコンテンツをインポートして調整します。
7.2.1. 移行先環境の準備と評価 リンクのコピーリンクがクリップボードにコピーされました!
移行アーティファクトを転送し、OpenShift Container Platform プロジェクトを作成して、移行元環境に一致する設定で Operator を使用して Ansible Automation Platform をデプロイします。
手順
- Ansible Automation Platform をデプロイするために Ansible Automation Platform Operator を設定します。
- データベース設定 (内部または外部) をセットアップします。
- Redis 設定 (内部または外部) をセットアップします。
- Ansible Automation Platform Operator を使用して Ansible Automation Platform をインストールします。
- 初期の OpenShift Container Platform デプロイメントのバックアップを作成します。
- 新規インストールが正しく機能することを確認します。
7.2.2. 移行先環境への移行コンテンツのインポート リンクのコピーリンクがクリップボードにコピーされました!
環境をインポートするには、Ansible Automation Platform コンポーネントをスケールダウンし、データベースを復元して、暗号化シークレットを置き換え、サービスを再びスケールアップします。
インポートプロセスには、デフォルトの aap 名前空間内の aap という名前の最新バージョンの Ansible Automation Platform と、すべてのデフォルトのデータベース名およびデータベースユーザーが必要です。
手順
Ansible Automation Platform コンポーネントをスケールダウンします。
まず、
idle_aapを使用して Ansible Automation Platform のデプロイメントをスケールダウンします。oc patch ansibleautomationplatform aap --type merge -p '{"spec":{"idle_aap":true}}'oc patch ansibleautomationplatform aap --type merge -p '{"spec":{"idle_aap":true}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネント Pod が停止するまで待機します。稼働し続けるのは 6 つの Operator Pod のみです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Automation Platform Gateway Operator と Ansible Automation Platform Controller Operator をスケールダウンします。
oc scale --replicas=0 deployment aap-gateway-operator-controller-manager automation-controller-operator-controller-manager
oc scale --replicas=0 deployment aap-gateway-operator-controller-manager automation-controller-operator-controller-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
deployment.apps/aap-gateway-operator-controller-manager scaled deployment.apps/automation-controller-operator-controller-manager scaled
deployment.apps/aap-gateway-operator-controller-manager scaled deployment.apps/automation-controller-operator-controller-manager scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow
アイドル状態の Postgres
StatefulSetをスケールアップします。oc scale --replicas=1 statefulset.apps/aap-postgres-15
oc scale --replicas=1 statefulset.apps/aap-postgres-15Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースの復元用に一時的な環境を準備します。
適切な設定とサイズで一時的な永続ボリューム要求 (PVC) を作成します。
aap-temp-pvc.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f aap-temp-pvc.yaml
oc create -f aap-temp-pvc.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 一時的なデプロイメントに使用する既存の PostgreSQL イメージを取得します。
echo $(oc get pod/aap-postgres-15-0 -o jsonpath="{.spec.containers[].image}")echo $(oc get pod/aap-postgres-15-0 -o jsonpath="{.spec.containers[].image}")Copy to Clipboard Copied! Toggle word wrap Toggle overflow マウントされた一時的な PVC を使用して一時的な PostgreSQL デプロイメントを作成します。
aap-temp-postgres.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f aap-temp-postgres.yaml
oc create -f aap-temp-postgres.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
エクスポートアーティファクトを一時的な PostgreSQL Pod にコピーします。
まず、Pod 名を取得し、それを環境変数として設定します。
export AAP_TEMP_POSTGRES=$(oc get pods --no-headers -o custom-columns="metadata.name" | grep aap-temp-postgres)
export AAP_TEMP_POSTGRES=$(oc get pods --no-headers -o custom-columns="metadata.name" | grep aap-temp-postgres)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 環境変数をテストします。
echo $AAP_TEMP_POSTGRES
echo $AAP_TEMP_POSTGRESCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
aap-temp-postgres-7b6c57f87f-s2ldp
aap-temp-postgres-7b6c57f87f-s2ldpCopy to Clipboard Copied! Toggle word wrap Toggle overflow アーティファクトとチェックサムを PVC にコピーします。
oc cp artifact.tar $AAP_TEMP_POSTGRES:/tmp/aap-temp-pvc/ oc cp artifact.tar.sha256 $AAP_TEMP_POSTGRES:/tmp/aap-temp-pvc/
oc cp artifact.tar $AAP_TEMP_POSTGRES:/tmp/aap-temp-pvc/ oc cp artifact.tar.sha256 $AAP_TEMP_POSTGRES:/tmp/aap-temp-pvc/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
一時的な PostgreSQL Pod を使用して、データベースを Ansible Automation Platform の PostgreSQL に復元します。
まず、3 つのデータベースすべての PostgreSQL パスワードと PostgreSQL 管理者パスワードを取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一時的な PostgreSQL デプロイメントに入り、コピーしたアーティファクトを含むマウントされた PVC にディレクトリーを変更します。
oc exec -it deployment.apps/aap-temp-postgres -- /bin/bash
oc exec -it deployment.apps/aap-temp-postgres -- /bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod 内で、ディレクトリーを
/tmp/aap-temp-pvcに変更し、その内容をリスト表示します。cd /tmp/aap-temp-pvc && ls -l
cd /tmp/aap-temp-pvc && ls -lCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
total 2240 -rw-r--r--. 1 1000900000 1000900000 2273280 Jun 13 17:41 artifact.tar -rw-r--r--. 1 1000900000 1000900000 79 Jun 13 17:42 artifact.tar.sha256 drwxrws---. 2 root 1000900000 16384 Jun 13 17:40 lost+found
total 2240 -rw-r--r--. 1 1000900000 1000900000 2273280 Jun 13 17:41 artifact.tar -rw-r--r--. 1 1000900000 1000900000 79 Jun 13 17:42 artifact.tar.sha256 drwxrws---. 2 root 1000900000 16384 Jun 13 17:40 lost+foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow アーカイブを検証します。
sha256sum --check artifact.tar.sha256
sha256sum --check artifact.tar.sha256Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
artifact.tar: OK
artifact.tar: OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow アーティファクトを抽出し、その内容を確認します。
tar xf artifact.tar && cd artifact && sha256sum --check sha256sum.txt
tar xf artifact.tar && cd artifact && sha256sum --check sha256sum.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
./controller/controller.pgc: OK ./gateway/gateway.pgc: OK ./hub/hub.pgc: OK
./controller/controller.pgc: OK ./gateway/gateway.pgc: OK ./hub/hub.pgc: OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow Automation Controller のデータベースを削除します。
dropdb -h aap-postgres-15 automationcontroller
dropdb -h aap-postgres-15 automationcontrollerCopy to Clipboard Copied! Toggle word wrap Toggle overflow CREATEDBロールを使用してユーザーを一時的に変更します。postgres=# ALTER USER automationcontroller WITH CREATEDB;
postgres=# ALTER USER automationcontroller WITH CREATEDB;Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースを作成します。
createdb -h aap-postgres-15 -U automationcontroller automationcontroller
createdb -h aap-postgres-15 -U automationcontroller automationcontrollerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 一時的なユーザー権限を元に戻します。
postgres=# ALTER USER automationcontroller NOCREATEDB;
postgres=# ALTER USER automationcontroller NOCREATEDB;Copy to Clipboard Copied! Toggle word wrap Toggle overflow Automation Controller のデータベースを復元します。
pg_restore --clean --create --no-owner -h aap-postgres-15 -U automationcontroller -d automationcontroller controller/controller.pgc
pg_restore --clean --create --no-owner -h aap-postgres-15 -U automationcontroller -d automationcontroller controller/controller.pgcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Automation Hub のデータベースを復元します。
pg_restore --clean --create --no-owner -h aap-postgres-15 -U automationhub -d automationhub hub/hub.pgc
pg_restore --clean --create --no-owner -h aap-postgres-15 -U automationhub -d automationhub hub/hub.pgcCopy to Clipboard Copied! Toggle word wrap Toggle overflow プラットフォームゲートウェイのデータベースを復元します。
pg_restore --clean --create --no-owner -h aap-postgres-15 -U gateway -d gateway gateway/gateway.pgc
pg_restore --clean --create --no-owner -h aap-postgres-15 -U gateway -d gateway gateway/gateway.pgcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod を終了します。
exit
exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
データベースフィールドの暗号化シークレットを置き換え、一時リソースをクリーンアップします。
データベースフィールドの暗号化シークレットを置き換えます。
oc set data secret/aap-controller-secret-key secret_key="<unencoded controller_secret_key value from secrets.yml>"
oc set data secret/aap-controller-secret-key secret_key="<unencoded controller_secret_key value from secrets.yml>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc set data secret/aap-db-fields-encryption-secret secret_key="<unencoded gateway_secret_key value from secrets.yml>"
oc set data secret/aap-db-fields-encryption-secret secret_key="<unencoded gateway_secret_key value from secrets.yml>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc set data secret/aap-hub-db-fields-encryption database_fields.symmetric.key="<unencoded hub_db_fields_encryption_key value from secrets.yml>"
oc set data secret/aap-hub-db-fields-encryption database_fields.symmetric.key="<unencoded hub_db_fields_encryption_key value from secrets.yml>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一時的な PostgreSQL と PVC をクリーンアップします。
oc delete -f aap-temp-postgres.yaml
oc delete -f aap-temp-postgres.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete -f aap-temp-pvc.yaml
oc delete -f aap-temp-pvc.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ansible Automation Platform コンポーネントをスケールアップして元の状態に戻します。
プラットフォームゲートウェイと Automation Controller Operator をスケールアップし、プラットフォームゲートウェイ Operator のリコンシリエーションループが完了するまで待機します。
PostgreSQL の
StatefulSetがアイドル状態に戻ります。oc scale --replicas=1 deployment aap-gateway-operator-controller-manager automation-controller-operator-controller-manager
oc scale --replicas=1 deployment aap-gateway-operator-controller-manager automation-controller-operator-controller-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
deployment.apps/aap-gateway-operator-controller-manager scaled deployment.apps/automation-controller-operator-controller-manager scaled
deployment.apps/aap-gateway-operator-controller-manager scaled deployment.apps/automation-controller-operator-controller-manager scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -f $(oc get pods --no-headers -o custom-columns=":metadata.name" | grep aap-gateway-operator)
oc logs -f $(oc get pods --no-headers -o custom-columns=":metadata.name" | grep aap-gateway-operator)Copy to Clipboard Copied! Toggle word wrap Toggle overflow リコンシリエーションが停止するまで待ちます。
出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow idle_aapを使用して Ansible Automation Platform をスケールアップして元に戻します。oc patch ansibleautomationplatform aap --type=merge -p '{"spec":{"idle_aap":false}}'oc patch ansibleautomationplatform aap --type=merge -p '{"spec":{"idle_aap":false}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
ansibleautomationplatform.aap.ansible.com/aap patched
ansibleautomationplatform.aap.ansible.com/aap patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
aap-gatewayPod が実行されるまで待って、古いサービスエンドポイントをクリーンアップします。出力例:
pod/aap-gateway-6c989b846c-47b91 2/2 Running 0 45s
pod/aap-gateway-6c989b846c-47b91 2/2 Running 0 45sCopy to Clipboard Copied! Toggle word wrap Toggle overflow for i in HTTPPort Route ServiceNode; do; oc exec -it deployment.apps/aap-gateway -- aap-gateway-manage shell -c 'from aap_gateway_api.models import '$i';print('$i'.objects.all().delete())'; donefor i in HTTPPort Route ServiceNode; do; oc exec -it deployment.apps/aap-gateway -- aap-gateway-manage shell -c 'from aap_gateway_api.models import '$i';print('$i'.objects.all().delete())'; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
(23, {'aap_gateway_api.ServiceAPIRoute': 4, 'aap_gateway_api.AdditionalRoute': 7, 'aap_gateway_api.Route': 11, 'aap_gateway_api.HTTPPort': 1}) (0, {}) (4, {'aap_gateway_api.ServiceNode': 4})(23, {'aap_gateway_api.ServiceAPIRoute': 4, 'aap_gateway_api.AdditionalRoute': 7, 'aap_gateway_api.Route': 11, 'aap_gateway_api.HTTPPort': 1}) (0, {}) (4, {'aap_gateway_api.ServiceNode': 4})Copy to Clipboard Copied! Toggle word wrap Toggle overflow awx-manageを実行してインスタンスのプロビジョニングを解除します。Automation Controller Pod を取得します。
export AAP_CONTROLLER_POD=$(oc get pods --no-headers -o custom-columns=":metadata.name" | grep aap-controller-task)
export AAP_CONTROLLER_POD=$(oc get pods --no-headers -o custom-columns=":metadata.name" | grep aap-controller-task)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 環境変数をテストします。
echo $AAP_CONTROLLER_POD
echo $AAP_CONTROLLER_PODCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
aap-controller-task-759b6d9759-r59q9
aap-controller-task-759b6d9759-r59q9Copy to Clipboard Copied! Toggle word wrap Toggle overflow Automation Controller Pod に入ります。
oc exec -it $AAP_CONTROLLER_POD -- /bin/bash awx-manage list_instances
oc exec -it $AAP_CONTROLLER_POD -- /bin/bash awx-manage list_instancesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow awx-manageを使用して古いノードを削除し、aap-controller-taskのみを残します。awx-manage deprovision_instance --host=node1.example.org awx-manage deprovision_instance --host=node2.example.org
awx-manage deprovision_instance --host=node1.example.org awx-manage deprovision_instance --host=node2.example.orgCopy to Clipboard Copied! Toggle word wrap Toggle overflow
curlコマンドを実行して、Automation Hub ファイルシステムのデータを修復します。curl -d '{\"verify_checksums\": true }' -X POST -k https://<aap url>/api/galaxy/pulp/api/v3/repair/ -u <admin_user>:<restored_admin_password>curl -d '{\"verify_checksums\": true }' -X POST -k https://<aap url>/api/galaxy/pulp/api/v3/repair/ -u <admin_user>:<restored_admin_password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.3. インポート後の移行先環境の調整 リンクのコピーリンクがクリップボードにコピーされました!
移行アーティファクトをインポートした後、次の手順を実行して移行先環境を調整します。
手順
-
Django
SECRET_KEYシークレットをソースプラットフォームに合わせて変更します。 - プラットフォームゲートウェイのサービスノードをプロビジョニング解除し、再設定します。
- プラットフォームゲートウェイのノードとサービスの登録ロジックを再実行します。
- コンテナー固有の設定を OpenShift Container Platform に適した形式に変換します。
- コンテナーリソースの割り当てを、OpenShift Container Platform のリソースに合わせて調整します。
7.2.4. 移行先環境の検証 リンクのコピーリンクがクリップボードにコピーされました!
すべての Ansible Automation Platform サービスが実行されていること、認証情報が正しく機能していること、プロジェクト、インベントリー、ジョブテンプレートなどの移行されたコンテンツが OpenShift Container Platform でアクセス可能であることを確認します。
手順
- 移行したすべてのコンポーネントが機能していることを確認します。
- ワークフローと自動化プロセスをテストします。
- ユーザーのアクセスと権限を検証します。
- コンテンツの同期と利用可能性を確認します。
- OpenShift Container Platform 固有の機能との統合をテストします。