10.2. 升级 Ansible Automation Platform
10.2.1. 拉取 ansible-on-clouds-ops 容器镜像 复制链接链接已复制到粘贴板!
流程
在云操作容器上拉取 Ansible 的 Docker 镜像,其标签与您要升级到的版本相同。
注意在拉取 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 身份验证
注意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
$ 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
10.2.2. 所需权限 复制链接链接已复制到粘贴板!
您必须具有以下 AWS IAM 权限才能升级堆栈:
要验证权限或调试权限拒绝问题,AWS IAM Policy Simulator 会很有帮助。
10.2.3. 生成数据文件 复制链接链接已复制到粘贴板!
本节中的命令会创建一个目录,并使用在升级过程中使用填充时的空数据模板填充。
流程
运行以下命令以生成所需的数据文件。
Create a folder to hold the configuration files mkdir command_generator_data
# Create a folder to hold the configuration files $ mkdir command_generator_dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用配置文件模板填充
command_generator_data文件夹。注意在 Linux 上,命令生成器创建的任何文件或目录默认归
root:root所有。要更改文件和目录的所有权,您可以在创建文件后运行sudo chmod命令。如需更多信息,请阅读 命令生成器 - 由 root 拥有的 Linux 文件。docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \ command_generator_vars aws_upgrade \ --output-data-file /data/extra_vars.yml
$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \ command_generator_vars aws_upgrade \ --output-data-file /data/extra_vars.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行这些命令后,会创建一个
command_generator_data/extra_vars.yml模板文件。此模板文件类似于以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.4. 更新数据文件 复制链接链接已复制到粘贴板!
在触发升级前,您必须填充数据文件。每个参数都需要,除非将其标记为可选。如果该参数为可选,可以从数据文件中删除其键和值。
以下变量是数据文件中列出的参数:
-
ansible_config_path(可选)仅在使用自定义ansible_config覆盖时使用。 -
cloud_credentials_path是 AWS 凭证文件的路径。 DEPLOYMENT_NAME是基础部署的名称。- 这是部署基础时使用的相同名称。
-
aws_backup_taken是最近在运行此升级前创建的当前部署的手动备份的验证。 -
AWS_REGION 是基础部署所在的 AWS 区域。 aws_ssm_bucket_name是存储 AWS SSM 的临时配置文件的 S3 存储桶的名称。您可以使用现有存储桶或创建新存储桶。注意aws_ssm_bucket_name参数仅适用于存储临时配置文件。不需要保存它以便在其他 playbook 中使用。可以使用任何有效的现有存储桶。有关创建 S3 存储桶的更多信息,请参阅 AWS 文档中的 AWS 创建 A Bucket。存储桶名称不得包含大写字母。
-
seller_name(可选)用于指定 AWS Marketplace Seller。默认值为redhatinc。如果您在 EMEA 上,并通过redhatlimitedAWS Marketplace 销售者购买此服务,请确保将这个值设置为redhatlimited。
填充数据文件后,它应类似于以下内容:
以下示例提供了以下值:
10.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 -v $(pwd)/command_generator_data:/data $IMAGE command_generator --data-file /data/extra_vars.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会生成以下 upgrade 命令:
----------------------------------------------- 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 $IMAGE redhat.ansible_on_clouds.aws_upgrade -e 'aws_foundation_stack_name=AnsibleAutomationPlatform aws_region=us-east-1 aws_ssm_bucket_name=aap-ssm-bucket aws_backup_taken=True seller_name=redhatinc' ===============================================
----------------------------------------------- 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 $IMAGE redhat.ansible_on_clouds.aws_upgrade -e 'aws_foundation_stack_name=AnsibleAutomationPlatform aws_region=us-east-1 aws_ssm_bucket_name=aap-ssm-bucket aws_backup_taken=True seller_name=redhatinc' ===============================================Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行给定的 upgrade 命令以触发升级。
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 $IMAGE redhat.ansible_on_clouds.aws_upgrade -e 'aws_foundation_stack_name=AnsibleAutomationPlatform aws_region=us-east-1 aws_ssm_bucket_name=aap-ssm-bucket aws_backup_taken=True seller_name=redhatinc'
$ 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 $IMAGE redhat.ansible_on_clouds.aws_upgrade -e 'aws_foundation_stack_name=AnsibleAutomationPlatform aws_region=us-east-1 aws_ssm_bucket_name=aap-ssm-bucket aws_backup_taken=True seller_name=redhatinc'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 升级可能需要一些时间才能完成,但根据系统中的扩展节点数量,可能需要更长的时间。以下日志会标记成功升级。
TASK [redhat.ansible_on_clouds.standalone_aws_upgrade : [upgrade] [LOG] upgrade version] *** ok: [localhost] => { "msg": "Successfully upgraded from '2.3.20230221-00' -> '2.4.20230630-00'." }TASK [redhat.ansible_on_clouds.standalone_aws_upgrade : [upgrade] [LOG] upgrade version] *** ok: [localhost] => { "msg": "Successfully upgraded from '2.3.20230221-00' -> '2.4.20230630-00'." }Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 来自 AWS Marketplace 部署的 Ansible Automation Platform 现在已升级到更新的版本,您可以使用部署凭证登录到 Red Hat Ansible Automation Platform 自动化控制器和自动化中心。