第 10 章 来自 AWS Marketplace 的 Ansible Automation Platform 备份和恢复过程


要备份和恢复 Ansible Automation Platform 部署,务必要确保为 EFS 设置了自动备份,并可以恢复这些备份。

当您创建 Ansible Automation Platform 部署时,默认自动 Amazon Elastic File System (EFS)备份。但是,请务必检查这些备份是否可以在灾难发生前恢复。

另外,还需要确保进行 Amazon Relational Database Service (RDS)的常规手动快照,以确保部署可以尽可能接近其以前的工作状态。

10.1. 备份 Ansible Automation Platform 部署

使用以下步骤确保一个平稳的备份过程。

10.1.1. AWS 权限

在开始备份过程前,用于执行备份的 AWS 帐户必须具有以下权限:

Expand
Service/PermissionResources

backup

  • backup:DescribeBackupJob
  • backup:ListRecoveryPointsByBackupVault
  • backup:StartBackupJob
 

cloudformation

  • cloudformation:DescribeStacks
  • cloudformation:DescribeStackResources
 

elasticfilesystem

  • elasticfilesystem:DescribeFileSystems
 

iam

  • iam:PassRole

arn:aws:iam::*:`role/service-role/AWSBackupDefaultServiceRole`

rds

  • rds:CreateDBSnapshot
  • rds:DescribeDBSnapshots
 

secretsmanager

  • secretsmanager:GetSecretValue
 

s3

  • s3:CreateBucket
  • s3:GetObject
  • s3:PutObject
 

10.1.2. 设置 ansible-on-clouds-ops 容器镜像

ansible-on-clouds-ops 镜像标签应与您的基础部署版本匹配。例如,如果您的基础部署版本是 2.3.20230221-00,请使用标签 2.3.20230221 拉取 ansible-on-clouds-ops 镜像。

流程

  1. 使用与基础部署相同的标签版本拉取 ansible-on-clouds-ops 容器镜像。

    注意

    在拉取 docker 镜像前,请确保使用 docker 登录到 registry.redhat.com。使用以下命令登录到 registry.redhat.com。

    $ docker login registry.redhat.io
    Copy to Clipboard Toggle word wrap

    有关 registry 登录的更多信息,请参阅 Registry 身份验证

    $ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel8:2.3.20230221
    $ docker pull $IMAGE --platform=linux/amd64
    Copy to Clipboard Toggle word wrap

对于 EMEA 区域 (欧洲、中东、非洲) 运行以下命令:

$ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-emea-rhel8:2.3.20230221
$ docker pull $IMAGE --platform=linux/amd64
Copy to Clipboard Toggle word wrap

10.1.3. 生成备份数据文件

以下命令创建一个目录,并在备份过程中使用空数据模板填充空数据模板。

流程

  1. 创建存放配置的文件夹

    $ mkdir command_generator_data
    Copy to Clipboard Toggle word wrap
  2. 使用配置文件模板填充 command_generator_data 文件夹。这会在带有 root:root_usergroup 权限的 command-generator_data 目录中创建 extra-vars.yaml 文件。

    $ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \
      command_generator_vars aws_backup_stack \
      --output-data-file /data/extra_vars.yaml
    Copy to Clipboard Toggle word wrap
  3. 运行这些命令后,会创建一个 command_generator_data/extra_vars.yaml 模板文件。此模板文件类似于以下内容:

    aws_backup_stack:
      cloud_credentials_path:
      deployment_name:
      extra_vars:
        aws_backup_iam_role_arn:
        aws_backup_vault_name:
        aws_region:
        aws_s3_bucket:
    Copy to Clipboard Toggle word wrap

10.1.4. 更新备份数据文件

在触发备份前,您必须填充数据文件。以下变量是数据文件中列出的参数。

  • cloud_credentials_path 是 AWS 凭证文件的路径。
  • DEPLOYMENT_NAME 是基础部署的名称。这是部署基础时使用的相同名称。
  • aws_backup_iam_role_arn 是 AWS IAM 角色的 Amazon 资源名称 (ARN),具有执行备份操作的权限。

    注意

    您可以使用 AWS Backup Default Service Role,其格式为 arn:aws:iam::<Your AWS Account Number>:role/service-role/AWSBackupDefaultServiceRole

  • aws_backup_vault_name 是保存 EFS 恢复点的备份库的名称。

    注意

    请确保引用的备份库存在,并且上面提供的 AWS Backup IAM 角色具有在密码库中创建 EFS 恢复点所需的权限。

  • aws_region 是部署基础部署的区域。
  • aws_s3_bucket 是存储备份文件的 S3 存储桶的名称。这会创建一个新存储桶(如果尚不存在)。只有最新的备份存储在存储桶中。每个后续备份到同一存储桶都会使用最新的备份覆盖备份文件。有关存储桶命名的指导,请参阅 Bucket 命名规则

填充数据文件后,它应类似于以下内容:此文件中的值作为示例提供:

aws_backup_stack:
  cloud_credentials_path: ~/.aws/credentials
  deployment_name: AnsibleAutomationPlatform
  extra_vars:
    aws_backup_iam_role_arn: arn:aws:iam::<Your AWS Account Number>:role/service-role/AWSBackupDefaultServiceRole
    aws_backup_vault_name: Default
    aws_region: us-east-1
    aws_s3_bucket: ansible-automation-platform-bucket
Copy to Clipboard Toggle word wrap

10.1.5. 运行备份 playbook

以下流程将备份 playbook 作为容器运行。

流程

  1. 要运行备份,请运行命令生成器。

    $ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator aws_backup_stack --data-file /data/extra_vars.yaml
    Copy to Clipboard Toggle word wrap

    这会生成 backup CLI 命令

    ----------------------------------------------
    docker run --rm --env PLATFORM=AWS -v ~/.aws/credentials:/home/runner/.aws/credentials:ro \
    --env ANSIBLE_CONFIG=../aws-ansible.cfg  $IMAGE redhat.ansible_on_clouds.aws_backup_stack \
    -e 'aws_foundation_stack_name=AnsibleAutomationPlatform aws_region=us-east-1 aws_backup_vault_name=Default \
    aws_backup_iam_role_arn=arn:aws:iam::123456789012:role/service-role/AWSBackupDefaultServiceRole \
    aws_s3_bucket=AnsibleAutomationPlatform-bucket'
    ===============================================
    Copy to Clipboard Toggle word wrap
  2. 运行生成的命令以触发备份。

    $ docker run --rm --env PLATFORM=AWS -v ~/.aws/credentials:/home/runner/.aws/credentials:ro \
    --env ANSIBLE_CONFIG=../aws-ansible.cfg  $IMAGE redhat.ansible_on_clouds.aws_backup_stack \
    -e 'aws_foundation_stack_name=AnsibleAutomationPlatform aws_region=us-east-1 \
    aws_backup_vault_name=Default \
    aws_backup_iam_role_arn=arn:aws:iam::123456789012:role/service-role/AWSBackupDefaultServiceRole \ aws_s3_bucket=AnsibleAutomationPlatform-bucket'
    Copy to Clipboard Toggle word wrap
  3. 根据数据库大小,备份可能需要几分钟才能完成。成功备份会返回类似如下的日志:

    {
        "efs_restore_points": [
            {
                "CreationDate": "2023-02-28T21:54:07.515000+00:00",
                "RecoveryPointArn": "arn:aws:backup:us-east-1:080914983077:recovery-point:967be465-a43e-432a-b536-8b16e6b0452d"
            },
            {
                "CreationDate": "2023-02-28T16:08:08.905000+00:00",
                "RecoveryPointArn": "arn:aws:backup:us-east-1:080914983077:recovery-point:d2058e3a-dca6-4a18-b175-5ef624f513a7"
            }
        ],
        "rds_db_snapshot_arn": "arn:aws:rds:us-east-1:080914983077:snapshot:test-bnr-ops-container-rds169785b9-orm2iuzlfqem-snap-2023-02-28"
    }
    Copy to Clipboard Toggle word wrap
  4. AWS Marketplace 部署的 Ansible Automation Platform 现在已被成功备份。当日志显示时,playbook 可以成功填充部署的 EFS 备份和 RDS 快照,列出最新的 EFS 恢复点和 RDS 快照信息。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat