7.2. 移行の準備
現在の Ansible Automation Platform デプロイメントを Ansible Automation Platform Operator に移行する前に、既存のデータのバックアップを作成し、シークレットキーおよび postgresql 設定の k8s シークレットを作成します。
Automation Controller と Automation Hub インスタンスの両方を移行する場合は、秘密鍵のシークレットの作成 と postgresql 設定シークレットの作成 の手順を繰り返し、データの Ansible Automation Platform Operator への移行 に進みます。
7.2.1. 前提条件
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
Copy to clipboardCopied$ ./setup.sh -b
バージョン 2.0 より前の OpenShift デプロイメントの場合 (operator デプロイメント以外):
./setup_openshift.sh -b
Copy to clipboardCopied./setup_openshift.sh -b
7.2.2. 秘密鍵のシークレットの作成
データを OpenShift Container Platform の Ansible Automation Platform Operator に移行するには、初回インストール時にインベントリーファイルに定義された秘密鍵に一致する秘密鍵を作成する必要があります。そうしないと、移行されたデータは暗号化され、移行後に使用できなくなります。
手順
- 以前のインストールで Ansible Automation Platform をデプロイするのに使用したインベントリーファイルで古い秘密鍵を見つけます。
秘密鍵の yaml ファイルを作成します。
apiVersion: v1 kind: Secret metadata: name: <resourcename>-secret-key namespace: <target-namespace> stringData: secret_key: <old-secret-key> type: Opaque
Copy to clipboardCopiedapiVersion: v1 kind: Secret metadata: name: <resourcename>-secret-key namespace: <target-namespace> stringData: secret_key: <old-secret-key> type: Opaque
秘密鍵 yaml をクラスターに適用します。
oc apply -f <secret-key.yml>
Copy to clipboardCopiedoc apply -f <secret-key.yml>
7.2.3. postgresql 設定シークレットの作成
移行を成功させるには、既存のデプロイメントのデータベースへのアクセスを提供する必要があります。
手順
postgresql 設定シークレットの yaml ファイルを作成します。
apiVersion: v1 kind: Secret metadata: name: <resourcename>-old-postgres-configuration namespace: <target namespace> stringData: host: "<external ip or url resolvable by the cluster>" port: "<external port, this usually defaults to 5432>" database: "<desired database name>" username: "<username to connect as>" password: "<password to connect with>" type: Opaque
Copy to clipboardCopiedapiVersion: v1 kind: Secret metadata: name: <resourcename>-old-postgres-configuration namespace: <target namespace> stringData: host: "<external ip or url resolvable by the cluster>" port: "<external port, this usually defaults to 5432>" database: "<desired database name>" username: "<username to connect as>" password: "<password to connect with>" type: Opaque
- postgresql 設定の yaml をクラスターに適用します。
oc apply -f <old-postgres-configuration.yml>
oc apply -f <old-postgres-configuration.yml>
Copy to clipboardCopied7.2.4. ネットワーク接続の確認
データの移行を成功させるには、新しい Operator デプロイメントから以前のデプロイメントデータベースへのネットワーク接続があることを確認します。
前提条件
既存のデプロイメントのホストおよびポート情報を書き留めておきます。この情報は、conf.d ディレクトリーにある postgres.py ファイルにあります。
手順
yaml ファイルを作成して、新しいデプロイメントと以前のデプロイメントデータベース間の接続を確認します。
apiVersion: v1 kind: Pod metadata: name: dbchecker spec: containers: - name: dbchecker image: registry.redhat.io/rhel8/postgresql-12:latest command: ["sleep"] args: ["600"]
Copy to clipboardCopiedapiVersion: v1 kind: Pod metadata: name: dbchecker spec: containers: - name: dbchecker image: registry.redhat.io/rhel8/postgresql-12:latest command: ["sleep"] args: ["600"]
接続チェッカーの yaml ファイルを新規プロジェクトのデプロイメントに適用します。
oc project ansible-automation-platform oc apply -f connection_checker.yaml
Copy to clipboardCopiedoc project ansible-automation-platform oc apply -f connection_checker.yaml
接続チェッカー Pod が実行されていることを確認します。
oc get pods
Copy to clipboardCopiedoc get pods
Pod シェルに接続します。
oc rsh dbchecker
Copy to clipboardCopiedoc rsh dbchecker
Pod でシェルセッションが開いたら、新規プロジェクトが古いプロジェクトクラスターに接続できることを確認します。
pg_isready -h <old-host-address> -p <old-port-number> -U awx
Copy to clipboardCopiedpg_isready -h <old-host-address> -p <old-port-number> -U awx
例
<old-host-address>:<old-port-number> - accepting connections
Copy to clipboardCopied<old-host-address>:<old-port-number> - accepting connections