9.2. Ansible Automation Platform デプロイメントの復元
復元プロセスをスムーズに行うには、次の手順を使用してください。
復元されたデプロイメントには、元のバックアップされたデプロイメントと同じ VPC ネットワーク設定が含まれています。バックアップされたデプロイメントが既存の VPC 内にデプロイされている場合は、その復元されたデプロイメントもその VPC にデプロイされます。バックアップされたデプロイメントが新しい VPC でデプロイされると、その復元されたデプロイメントも新しい VPC でデプロイされます。
9.2.1. AWS の権限
復元する予定のデプロイメントを復元するには、次の権限が付与されている必要があります。
次の表に、必要な IAM ポリシーのリストを示します。
| 新しい VPC を使用したデプロイの場合 | 既存の VPC を使用したデプロイメントの場合 |
|---|---|
| 自動スケーリング
| 自動スケーリング
|
| backup
| backup
|
| cloudformation
| cloudformation
|
| ec2
| ec2
|
| elasticfilesystem
| elasticfilesystem
|
| elasticloadbalancing
| elasticloadbalancing
|
| iam
| iam
|
| kms
| kms
|
| rds
| rds
|
| s3
| s3
|
| secretsmanager
| secretsmanager
|
| sns
| sns
|
9.2.2. ansible-on-clouds-ops コンテナーイメージの設定
ansible-on-clouds-ops イメージのタグが、基盤デプロイメントのバージョンと一致している必要があります。たとえば、基盤のデプロイメントバージョンが 2.4.20230630-00 の場合は、2.4.20230630 のタグを使用して ansible-on-clouds-ops イメージをプルします。
手順
基盤デプロイメントとタグのバージョンが同じ
ansible-on-clouds-opsコンテナーイメージをプルします。注記Docker イメージをプルする前に、Docker を使用して registry.redhat.io にログインしていることを確認してください。以下のコマンドを使用して registry.redhat.io にログインします。
$ docker login registry.redhat.io
レジストリーのログインに関する詳細は、Registry Authentication を参照してください。
$ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20230630 $ docker pull $IMAGE --platform=linux/amd64
9.2.3. 復元データファイルの生成
次のコマンドは、ディレクトリーを作成し、そのディレクトリーに空のデータテンプレートを保存します。このテンプレートは、データを入力して復元時に使用するためのものです。
手順
設定を保存するフォルダーを作成します。
$ mkdir command_generator_data
$(pwd)/command_generator_dataフォルダーに設定ファイルのテンプレートを追加します。注記Linux では、コマンドジェネレーターが作成したファイルまたはディレクトリーは、デフォルトで
root:rootの所有となります。ファイルとディレクトリーの所有権を変更するには、ファイルの作成後にsudo chmodコマンドを実行します。詳細は、コマンドジェネレーター - root が所有する Linux ファイル を参照してください。$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \ command_generator_vars aws_restore_stack \ --output-data-file /data/restore.yml
これらのコマンドを実行すると、
$(pwd)/command_generator_data/restore.ymlテンプレートファイルが作成されます。このテンプレートファイルは以下のようになります。aws_restore_stack: ansible_config_path: cloud_credentials_path: deployment_name: extra_vars: aws_backup_iam_role_arn: aws_backup_name: aws_backup_restore_point_arn: aws_backup_vault_name: aws_rds_db_snapshot_arn: aws_region: aws_s3_bucket: aws_ssm_bucket_name:
9.2.4. 復元データファイルの更新
復元をトリガーする前に、データファイルを設定する必要があります。次の変数は、データファイルにリストされているパラメーターです。
-
ansible_config_path(オプション) は、カスタムのansible_configでオーバーライドする場合にのみ使用します。 -
cloud_credentials_pathは、AWS 認証情報ファイルへのパスです。 -
deployment_nameは、復元されたデプロイメントに付ける名前です。 aws_backup_iam_role_arn(任意) は、バックアップ操作を実行するパーミッションを持つ AWS IAM ロールの Amazon Resource Name (ARN) です。注記この値を指定した場合、Playbook は、S3 上のバックアップファイルで参照される IAM ロールの値ではなく、この値をデフォルトに設定します。詳細は、Ansible Automation Platform デプロイメントのバックアップ を参照してください。
-
aws_backup_nameは、S3 に保存されているバックアップフォルダーの名前です。この値は、バックアップ Playbook の実行後に出力されました。 aws_backup_restore_point_arn(任意) は、復元に使用する EFS 復旧ポイントの ARN です。注記この値を指定した場合、Playbook は、S3 上のバックアップファイルで参照される EFS 復元ポイントではなく、この値をデフォルトに設定します。AWS の権限 を参照してください。
また、指定した復元ポイントが、復元を実行する ansible-on-clouds-ops コンテナーイメージのバージョンと一致する Ansible on Clouds (AoC) のバージョンに基づくものであることを確認する必要があります。たとえば、AoC バージョン 2.4.20230630-00 のデプロイメントから取得した復元ポイントは、
ansible-on-clouds-opsコンテナーイメージバージョン2.4.20230630を使用する必要があります。aws_backup_vault_name(任意) は、EFS 復旧ポイントを保持するバックアップ Vault の名前です。注記この値を指定した場合、Playbook は、バックアップ操作の実行時に生成された S3 上のバックアップファイルで参照されるバックアップボールトではなく、この値をデフォルトに設定します。AWS の権限 を参照してください。また、このバックアップボールトがデプロイメントのバックアップに使用したものと一致していることを確認する必要があります。
aws_rds_db_snapshot_arn(任意) は、復元に使用する RDS スナップショットの ARN です。注記この値を指定した場合、Playbook は、S3 上のバックアップファイルで参照される RDS スナップショットではなく、この値をデフォルトに設定します。また、指定した RDS スナップショットが、復元を実行する
ansible-on-clouds-opsコンテナーイメージのバージョンと一致する Ansible on Clouds のバージョンに基づくものであることを確認する必要があります。たとえば、AoC バージョン 2.4.20230630-00 のデプロイメントから取得した RDS スナップショットは、ansible-on-clouds-opsコンテナーイメージバージョン2.4.20230630を使用する必要があります。-
aws_regionは、基盤デプロイメントがデプロイされているリージョンです。 -
aws_s3_bucketは、バックアップファイルが保存されている S3 バケットの名前です。これは、バックアップに使用したバケットと同じである必要があります。 aws_ssm_bucket_nameは、AWS SSM の一時設定ファイルが保存されている S3 バケットの名前です。既存のバケットを使用することも、新しいバケットを作成することもできます。注記aws_ssm_bucket_nameパラメーターは、一時設定ファイルを保存するためにのみ使用されます。他の Playbook で使用するために保存する必要はありません。有効な既存のバケットであればどれでも使用できます。S3 バケットの作成の詳細は、AWS ドキュメントの AWS Creating A Bucket を参照してください。データファイルを入力すると、次のようになります。このファイル内の値は例として提供されています。
注記このデータファイル例の任意の値は削除されています。これらの任意の値を使用せず、これらの変数のデフォルト値を使用する場合は、以下の例で行ったように、データファイルからもそれらの値を削除する必要があります。これらの任意の変数を使用する場合は、それらをデータファイルに含めて値を割り当てる必要があります。
aws_restore_stack: cloud_credentials_path: ~/.aws/credentials deployment_name: AnsibleAutomationPlatform extra_vars: aws_backup_name: ansible-automation-platform-bucket-20230706T163309 aws_region: us-east-1 aws_s3_bucket: ansible-automation-platform-bucket aws_ssm_bucket_name: aap-ssm-bucket
9.2.5. 復元 Playbook の実行
次の手順では、復元 Playbook をコンテナーとして実行します。
手順
復元を実行するために、コマンドジェネレーターを実行します。
$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator aws_restore_stack --data-file /data/restore.yml
これにより、復元 CLI コマンドが生成されます。
---------------------------------------------- docker run --rm --env PLATFORM=AWS -v ~/.aws/credentials:/home/runner/.aws/credentials:ro --env ANSIBLE_CONFIG=../aws-ansible.cfg \ --env DEPLOYMENT_NAME=AnsibleAutomationPlatform --env GENERATE_INVENTORY=true --env CHECK_GENERATED_INVENTORY=false \ $IMAGE redhat.ansible_on_clouds.aws_restore_stack -e 'aws_foundation_stack_name=AnsibleAutomationPlatform \ aws_backup_name=ansible-automation-platform-bucket-20230706T163309 aws_region=us-east-1 \ aws_s3_bucket=ansible-automation-platform-bucket aws_ssm_bucket_name=aap-ssm-bucket' ===============================================
生成されたコマンドを実行して復元をトリガーします。
$ docker run --rm --env PLATFORM=AWS -v ~/.aws/credentials:/home/runner/.aws/credentials:ro --env ANSIBLE_CONFIG=../aws-ansible.cfg \ --env DEPLOYMENT_NAME=AnsibleAutomationPlatform --env GENERATE_INVENTORY=true --env CHECK_GENERATED_INVENTORY=false \ $IMAGE redhat.ansible_on_clouds.aws_restore_stack -e 'aws_foundation_stack_name=AnsibleAutomationPlatform \ aws_backup_name=ansible-automation-platform-bucket-20230706T163309 aws_region=us-east-1 \ aws_s3_bucket=ansible-automation-platform-bucket aws_ssm_bucket_name=aap-ssm-bucket'
-
Playbook によって復元されたデプロイメントが作成されるまでに時間がかかる場合があります。Playbook が正常に実行すると、
restore.ymlファイルで指定した名前に一致する復元されたデプロイメントが AWS CloudFormation で使用可能になります。
復元されたデプロイメントには、元のバックアップされたデプロイメントと同じ VPC ネットワーク設定が含まれています。バックアップされたデプロイメントが既存の VPC 内にデプロイされている場合は、その復元されたデプロイメントもその VPC にデプロイされます。バックアップされたデプロイメントが新しい VPC でデプロイされると、その復元されたデプロイメントも新しい VPC でデプロイされます。