11.2. 升级 Ansible Automation Platform
11.2.1. 拉取 ansible-on-clouds-ops 容器镜像
流程
在云操作容器上拉取 Ansible 的 Docker 镜像,其标签与您要升级到的版本相同。
注意在拉取 docker 镜像前,请确保使用 docker 登录到 registry.redhat.io。使用以下命令登录到 registry.redhat.io。
$ docker login registry.redhat.io
有关 registry 登录的更多信息,请参阅 Registry 身份验证
注意Clouds 操作镜像标签上的 Ansible 必须与您要升级到的版本匹配。例如,如果您的基础部署版本为 2.3.20230221,请使用标签 2.4.20230630 拉取操作镜像,以升级到 2.4.20230630 版本。
$ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20230630 $ docker pull $IMAGE --platform=linux/amd64
11.2.2. 所需权限
您必须具有以下 GCP IAM 权限才能升级堆栈:
required-roles: - Service Account User - Compute Instance Admin (v1) required-permissions: - compute.healthChecks.update - compute.healthChecks.use - compute.healthChecks.useReadOnly - compute.regionBackendServices.update - iap.tunnelInstances.accessViaIAP - runtimeconfig.variables.get - secretmanager.locations.get - secretmanager.locations.list - secretmanager.secrets.create - secretmanager.secrets.delete - secretmanager.secrets.get - secretmanager.secrets.list - secretmanager.secrets.update - secretmanager.versions.access - secretmanager.versions.add - secretmanager.versions.disable - secretmanager.versions.enable - secretmanager.versions.get - secretmanager.versions.list
11.2.3. 生成数据文件
本节中的命令会创建一个目录,并使用在升级过程中使用填充时的空数据模板填充。
流程
运行以下命令以生成所需的数据文件。
# Create a folder to hold the configuration files $ mkdir command_generator_data
使用配置文件模板填充
command_generator_data文件夹。注意在 Linux 上,命令生成器创建的任何文件或目录默认归
root:root所有。要更改文件和目录的所有权,您可以在创建文件后运行sudo chmod命令。如需更多信息,请阅读 命令生成器 - 由 root 拥有的 Linux 文件。$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \ command_generator_vars gcp_upgrade \ --output-data-file /data/extra_vars.yml
运行这些命令后,会创建一个
command_generator_data/extra_vars.yml模板文件。此模板文件类似于以下内容:gcp_upgrade: ansible_config_path: cloud_credentials_path: deployment_name: extra_vars: gcp_backup_taken: gcp_compute_region: gcp_compute_zone:
11.2.4. 更新数据文件
在触发升级前,您必须填充数据文件。每个参数都需要,除非将其标记为可选。如果该参数为可选,可以从数据文件中删除其键和值。
-
ansible_config_path(可选)仅在使用自定义ansible_config覆盖时使用。 -
cloud_credentials_path是 GCP 凭证文件的路径。 DEPLOYMENT_NAME是基础部署的名称。- 这是部署基础时使用的相同名称。
-
gcp_backup_taken是最近在运行此升级前创建的手动备份当前部署的验证。此处使用true验证最近的备份是否已创建。 -
gcp_compute_region是部署基础部署时提供的 GCP 区域。如果您在部署基础时未提供区域,请在此处使用默认区域us-east1。 -
gcp_compute_zone是部署基础部署时提供的 GCP 区。如果您在部署基础时未提供区域,请在此处使用默认的us-east1-b。
填充数据文件后,它应类似于以下内容:
以下示例提供了以下值:
gcp_upgrade:
ansible_config_path:
cloud_credentials_path: ~/secrets/GCP-secrets.json
deployment_name: AnsibleAutomationPlatform
extra_vars:
gcp_backup_taken: true
gcp_compute_region: us-east1
gcp_compute_zone: us-east1-b11.2.5. 运行升级 playbook
Ansible Automation Platform 升级到 2.4.20230630 更新其内部负载均衡器的协议。如果在安装后添加了额外的网络配置,它们可能需要更新以确保连接。如需更多信息,请参阅升级 备注。
要运行升级,请运行命令生成器来生成 upgrade CLI 命令:
$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator --data-file /data/extra_vars.yml
这会生成以下命令:
----------------------------------------------- docker run --rm --env PLATFORM=GCP -v ~/secrets/GCP-secrets.json:/home/runner/.gcp/credentials:ro --env ANSIBLE_CONFIG=../gcp-ansible.cfg --env DEPLOYMENT_NAME=AnsibleAutomationPlatform --env GENERATE_INVENTORY=true $IMAGE redhat.ansible_on_clouds.gcp_upgrade \ -e 'gcp_deployment_name=AnsibleAutomationPlatform \ gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials \ gcp_compute_region=us-east1 gcp_compute_zone=us-east1-b gcp_backup_taken=True' ===============================================
运行给定的 upgrade 命令以触发升级。
$ docker run --rm --env PLATFORM=GCP -v ~/secrets/GCP-secrets.json:/home/runner/.gcp/credentials:ro \ --env ANSIBLE_CONFIG=../gcp-ansible.cfg \ --env DEPLOYMENT_NAME=AnsibleAutomationPlatform \ --env GENERATE_INVENTORY=true $IMAGE redhat.ansible_on_clouds.gcp_upgrade \ -e 'gcp_deployment_name=AnsibleAutomationPlatform \ gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials \ gcp_compute_region=us-east1 gcp_compute_zone=us-east1-b gcp_backup_taken=True'
升级可能需要一些时间才能完成,但根据系统中的扩展节点数量,可能需要更长的时间。以下日志会标记成功升级。
TASK [redhat.ansible_on_clouds.standalone_gcp_upgrade : [upgrade] Show GCP current version] *** ok: [localhost] => { "msg": "gcp_current_version: 2.3.20230221-00" }- 来自 GCP Marketplace 部署的 Ansible Automation Platform 现在已升级到更新的版本,您可以使用部署凭证登录到 Red Hat Ansible Automation Platform 自动化控制器和自动化中心。