9.2. 恢复 Ansible Automation Platform 部署
使用以下步骤确保平稳恢复过程。
恢复的部署包含与原始备份部署相同的 VPC 网络设置。如果备份部署在现有 VPC 中部署,则其恢复的部署也会部署到那个 VPC 中。如果备份部署使用新的 VPC 部署,则恢复的部署也会使用新的 VPC 部署。
9.2.1. AWS 权限 复制链接链接已复制到粘贴板!
您必须具有以下权限才能恢复计划恢复的部署。
要验证权限或调试权限拒绝问题,AWS IAM Policy Simulator 会很有帮助。
下表包含必要的 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
$ docker login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 有关 registry 登录的更多信息,请参阅 Registry 身份验证
export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20230630 docker pull $IMAGE --platform=linux/amd64
$ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20230630 $ docker pull $IMAGE --platform=linux/amd64Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.3. 生成恢复数据文件 复制链接链接已复制到粘贴板!
以下命令创建一个目录,并在恢复过程中使用空数据模板填充它。
流程
创建存放配置的文件夹
mkdir command_generator_data
$ mkdir command_generator_dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用配置文件模板填充
$(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
$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \ command_generator_vars aws_restore_stack \ --output-data-file /data/restore.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行这些命令后,会创建一个
$(pwd)/command_generator_data/restore.yml模板文件。此模板文件类似于以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.4. 更新恢复数据文件 复制链接链接已复制到粘贴板!
在触发恢复前,您必须填充数据文件。以下变量是数据文件中列出的参数。
-
ansible_config_path(可选)仅在使用自定义ansible_config覆盖时使用。 -
cloud_credentials_path是 AWS 凭证文件的路径。 -
DEPLOYMENT_NAME 是您要恢复的部署的名称 aws_backup_iam_role_arn(可选)是 AWS IAM 角色的 Amazon 资源名称 (ARN),具有执行备份操作的权限。注意如果提供,playbook 将默认为这个值,超过 S3 上备份文件中引用的 IAM 角色的值。如需更多信息,请参阅备份 Ansible Automation Platform 部署
-
aws_backup_name是 S3 中存储的备份文件夹的名称。此值在运行备份 playbook 后输出。 aws_backup_restore_point_arn(可选)是您要用于恢复的 EFS 恢复点的 ARN。注意如果提供,playbook 优先于 S3 的备份文件中引用的 EFS 恢复点。请参阅 AWS 权限。
您还必须确保提供的恢复点来自云上的 Ansible 版本(AoC),该版本与运行恢复的 ansible-on-clouds-ops 容器镜像的版本匹配。例如,从 AoC 版本 2.4.20230630-00 上的部署中获取的恢复点需要使用
ansible-on-clouds-ops容器镜像2.4.20230630。aws_backup_vault_name(可选)是保存 EFS 恢复点的备份库的名称。注意如果提供,playbook 优先于 S3 上备份文件中引用的备份库(在运行备份操作时生成的备份库)。请参阅 AWS 权限。您还必须确保此备份密码库与用于备份部署的内容匹配。
aws_rds_db_snapshot_arn(可选)是用于恢复的 RDS 快照的 ARN。注意如果提供,playbook 优先于 S3 上备份文件中引用的 RDS 快照。您还必须确保提供的 RDS 快照来自云上的 Ansible 版本,该版本与运行恢复的
ansible-on-clouds-ops容器镜像的版本匹配。例如,从 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 创建 A Bucket。填充数据文件后,它应类似于以下内容:此文件中的值作为示例提供。
注意此数据文件示例中的可选值已被删除。如果您不想使用这些可选值并希望使用这些变量的默认值,则"必须"也为您的数据文件删除它们,如下例所示。如果要使用这些可选变量,则必须将"必须"包含在数据文件中,并分配一个值。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator aws_restore_stack --data-file /data/restore.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会生成 restore CLI 命令
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行生成的命令来触发恢复。
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'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
创建恢复的部署需要一些时间。当您成功运行 playbook 时,AWS CloudFormation 中提供了恢复的部署,与
restore.yml文件中为它提供的名称匹配。
恢复的部署包含与原始备份部署相同的 VPC 网络设置。如果备份部署在现有 VPC 中部署,则其恢复的部署也会部署到那个 VPC 中。如果备份部署使用新的 VPC 部署,则恢复的部署也会使用新的 VPC 部署。