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
$ docker login registry.redhat.io
Copy 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.20240215 docker pull $IMAGE --platform=linux/amd64
$ 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 Copied! Toggle word wrap Toggle overflow
如果您的备份版本不是 2.4.20240215-00,请参阅 Clouds version 列中的 Released 版本页中的 表。在 IMAGE 环境变量的 Ansible-on-clouds-ops 容器镜像列中找到要使用的相应操作镜像。
10.2.2. 设置环境 复制链接链接已复制到粘贴板!
流程
创建用于存放配置文件的文件夹。
mkdir command_generator_data
$ mkdir command_generator_data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.3. 所需权限 复制链接链接已复制到粘贴板!
您必须具有以下 GCP IAM 权限才能恢复堆栈:
10.2.4. 生成 restore.yml 文件 复制链接链接已复制到粘贴板!
流程
运行命令 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
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 Copied! Toggle word wrap Toggle overflow 运行此命令后,会创建一个
$(pwd)/command_generator_data/restore.yml
模板文件。此模板文件类似于以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 模板类似于以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
时,您可以使用命令生成器来创建恢复命令。
流程
运行命令生成器。
docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator gcp_restore_deployment --data-file /data/restore.yml
$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator gcp_restore_deployment --data-file /data/restore.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会生成一个包含所有所需卷、环境变量和参数的新命令。
生成的命令类似如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行生成的命令。
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'
$ 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 Copied! Toggle word wrap Toggle overflow playbook 完成后,输出类似于以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.7. 无法恢复 复制链接链接已复制到粘贴板!
如果在恢复过程中出现类似以下内容的消息,则必须联系支持,因为必须手动进行恢复。
TASK [redhat.ansible_on_clouds.standalone_gcp_restore : [restore_deployment] Restore awx db] * fatal: [localhost -> dvernier-restore1-aap-cntrlr-x2c6]: FAILED!
TASK [redhat.ansible_on_clouds.standalone_gcp_restore : [restore_deployment] Restore awx db] *
fatal: [localhost -> dvernier-restore1-aap-cntrlr-x2c6]: FAILED!