10.2. 恢复过程


恢复过程会创建新的部署,并将 filestore 和 SQL 数据库实例恢复到指定的备份。

重要
  • 您必须使用用于备份的相同操作镜像版本恢复。

以下流程描述了如何从 GCP Marketplace 部署中恢复 Ansible Automation Platform。

10.2.1. 拉取 ansible-on-clouds-ops 容器镜像

流程

  • 使用与备份相同的标签拉取 ansible-on-clouds-ops 容器的 docker 镜像。如果您不确定备份的版本,您可以在 backup json 文件中查找密钥 restore_properties.aoc_version

    注意

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

    $ 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-rhel9:2.4.20240215
    $ docker pull $IMAGE --platform=linux/amd64
    Copy to Clipboard Toggle word wrap
注意

如果您的备份版本不是 2.4.20240215-00,请参阅 Clouds version 列中的 Released 版本页中的 表。在 IMAGE 环境变量的 Ansible-on-clouds-ops 容器镜像列中找到要使用的相应操作镜像

10.2.2. 设置环境

流程

  • 创建用于存放配置文件的文件夹。

    $ mkdir command_generator_data
    Copy to Clipboard Toggle word wrap

10.2.3. 所需权限

您必须具有以下 GCP IAM 权限才能恢复堆栈:

required-roles:

Cloud SQL Client
Cloud SQL Instance User
Compute Instance Admin (v1)
Compute Network Admin
Editor
Logs Writer
Secret Manager Secret Accessor
Service Account User
required-permissions:

compute.instances.list
compute.networks.create
deploymentmanager.deployments.create
deploymentmanager.deployments.get
deploymentmanager.operations.get
file.instances.create
file.operations.get
iap.tunnelInstances.accessViaIAP
secretmanager.secrets.create
secretmanager.secrets.delete
secretmanager.secrets.get
secretmanager.secrets.update
secretmanager.versions.add
secretmanager.versions.list
storage.objects.get
storage.objects.list
Copy to Clipboard Toggle word wrap

10.2.4. 生成 restore.yml 文件

流程

  1. 运行命令 generator command_generator_vars 来生成 restore.yml

    注意

    在 Linux 上,命令生成器创建的任何文件或目录默认归 root:root 所有。要更改文件和目录的所有权,您可以在创建文件后运行 sudo chmod 命令。如需更多信息,请阅读 技术说明

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

    ===============================================
    Playbook: gcp_restore_deployment
    Description: This playbook is used to restore the Ansible Automation Platform from GCP Marketplace environment from a backup.
    -----------------------------------------------
    This playbook is used to restore the Ansible Automation Platform from GCP Marketplace environment from a backup.
    For more information regarding backup and restore, visit our official documentation -
    https://docs.redhat.com/en/documentation/ansible_on_clouds/2.x/html/red_hat_ansible_automation_platform_from_gcp_marketplace_guide/index
    
    -----------------------------------------------
    Command generator template:
    
    docker run --rm -v <local_data_file_directory>:/data $IMAGE command_generator gcp_restore_deployment --data-file /data/restore.yml
    Copy to Clipboard Toggle word wrap

    模板类似于以下内容:

    gcp_restore_deployment:
      cloud_credentials_path:
      deployment_name:
      extra_vars:
        backup_name:
        gcp_bucket_backup_name:
        gcp_cloud_sql_peering_network:
        gcp_compute_region:
        gcp_compute_zone:
        gcp_controller_internal_ip_address:
        gcp_existing_vpc:
        gcp_filestore_ip_range:
        gcp_hub_internal_ip_address:
    Copy to Clipboard Toggle word wrap

10.2.5. restore.yml 文件的参数

您只能恢复到新的 VPC 网络。

对于新的 VPC

如果要使用新的 VPC 恢复,请设置以下参数:

  • gcp_existing_vpc 必须设为 false

必须删除以下参数:

  • gcp_filestore_ip_range
  • gcp_cloud_sql_peering_network
  • gcp_controller_internal_ip_address
  • gcp_hub_internal_ip_address

为以下参数提供值:

  • gcp_existing_vpc 必须设为 false
  • cloud_credentials_path 是 Google Cloud 服务帐户凭证文件的路径。
  • DEPLOYMENT_ NAME 是必须恢复部署的名称。将使用此名称创建新的部署。此名称不能已存在部署。
  • backup_name 是存储桶中的备份名称。使用 gcp_backup_ deployment 或 gcp_backup _list 命令时会显示此名称。
  • gcp_bucket_backup_name 是用于备份的存储桶名称。
  • gcp_compute_region 是进行备份的区域。这可以通过检查 Deployment Manager 中的 Deployments 配置来检索。
  • gcp_compute_zone 是进行备份的区域。这可以通过检查 Deployment Manager 中的 Deployments 配置来检索。

对于现有的 VPC

如果要使用现有的 VPC 恢复,您必须设置上面显示的参数。

您还必须设置以下附加参数:

  • gcp_existing_vpc 设置为 true
  • gcp_filestore_ip_range 必须设置为您的 VPC 的空闲 ip/29 范围。例如: 192.168.245.0/29。从 GCP Marketplace 部署 Ansible Automation Platform 时,不得使用 192.168.243.0/29 作为默认值。
  • gcp_cloud_sql_peering_network 必须设置为空闲 /24 子网。您不能使用 192.168.241.0/24,因为这会在原始部署过程中使用。
  • gcp_controller_internal_ip_address 必须设置为 VPC 网络中的一个空闲 IP。
  • gcp_hub_internal_ip_address 必须设置为 VPC 网络中的一个空闲 IP。

10.2.6. 运行 restore 命令

填充 $(pwd)/command_generator_data/restore.yml 时,您可以使用命令生成器来创建恢复命令。

流程

  1. 运行命令生成器。

    $ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator gcp_restore_deployment --data-file /data/restore.yml
    Copy to Clipboard Toggle word wrap

    这会生成一个包含所有所需卷、环境变量和参数的新命令。

    生成的命令类似如下:

    docker run --rm --env PLATFORM=GCP -v <local_credential_file>:/home/runner/.gcp/credentials:ro \
    --env ANSIBLE_CONFIG=../gcp-ansible.cfg --env DEPLOYMENT_NAME=<deployment_name> --env GENERATE_INVENTORY=true -\
    -env CHECK_GENERATED_INVENTORY=false  $IMAGE redhat.ansible_on_clouds.gcp_restore_deployment \
    -e 'gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials  \
    gcp_deployment_name=<deployment_name> gcp_compute_region=<region> gcp_compute_zone=<zone> \
    gcp_bucket_backup_name=<bucket> backup_name=<backup_name> gcp_existing_vpc=<existing_vpc>'
    Copy to Clipboard Toggle word wrap
  2. 运行生成的命令。

    $ docker run --rm --env PLATFORM=GCP -v <local_credential_file>:/home/runner/.gcp/credentials:ro \
    --env ANSIBLE_CONFIG=../gcp-ansible.cfg  $IMAGE redhat.ansible_on_clouds.gcp_restore_deployment \
    -e 'gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials  \
    gcp_deployment_name=<former_deployment_name> gcp_restored_deployment_name=<new_deployment_name> \
    gcp_compute_region=<region> gcp_compute_zone=<zone> gcp_bucket_backup_name=<bucket> gcp_existing_vpc=False'
    Copy to Clipboard Toggle word wrap
  3. playbook 完成后,输出类似于以下内容:

    TASK [redhat.ansible_on_clouds.standalone_gcp_restore : Display internal IP addresses] ***
    ok: [localhost] =>
      msg:
      - 'Hub        internal IP: 192.168.240.21'
      - 'Controller internal IP: 192.168.240.20'
    
    PLAY RECAP *********************************************************************
    localhost                  : ok=33   changed=8    unreachable=0    failed=0    skipped=6    rescued=0    ignored=2
    Copy to Clipboard Toggle word wrap

10.2.7. 无法恢复

如果在恢复过程中出现类似以下内容的消息,则必须联系支持,因为必须手动进行恢复。

TASK [redhat.ansible_on_clouds.standalone_gcp_restore : [restore_deployment] Restore awx db] *
fatal: [localhost -> dvernier-restore1-aap-cntrlr-x2c6]: FAILED!
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat