2.6. 为 OpenStack Platform 10.z 更新当前的 overcloud 软件包
director 提供了 命令来更新所有 overcloud 节点上的软件包。这样,您可以在当前版本的 OpenStack Platform 环境中执行次要更新。这是 Red Hat OpenStack Platform 10 中的小更新。
此步骤还将 overcloud 节点的操作系统更新至 Red Hat Enterprise Linux 7 和 Open vSwitch 的最新版本 2.9。
前提条件
- 您已更新到当前 undercloud 版本的最新次版本。
- 您已执行了 overcloud 的备份。
流程
检查
rhel_reg_release参数的订阅管理配置。如果没有设置此参数,您必须包括它并设置 7.7:parameter_defaults: ... rhel_reg_release: "7.7"
parameter_defaults: ... rhel_reg_release: "7.7"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保保存对 overcloud 订阅管理环境文件的更改。
使用您的原始
openstack overcloud deploy命令更新当前计划,并包含--update-plan-only选项。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow --update-plan-only仅更新存储在 director 中的 Overcloud 计划。使用-e选项包括与 Overcloud 相关的环境文件及其更新路径。环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。以下列表是环境文件顺序的示例:-
任何网络隔离文件,包括 heat 模板集合中的初始化文件(
environments/network-isolation.yaml),然后是自定义 NIC 配置文件。 - 任何外部负载均衡环境文件。
- 任何存储环境文件。
- 任何用于红帽 CDN 或 Satellite 注册的环境文件。
- 任何其它自定义环境文件。
-
任何网络隔离文件,包括 heat 模板集合中的初始化文件(
创建 overcloud 的静态清单文件:
tripleo-ansible-inventory --ansible_ssh_user heat-admin --static-yaml-inventory ~/inventory.yaml
$ tripleo-ansible-inventory --ansible_ssh_user heat-admin --static-yaml-inventory ~/inventory.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用不同于
overcloud的默认 overcloud 名称,请使用--plan选项来设置 overcloud 的名称。创建一个包含在所有节点上将操作系统版本设置为 Red Hat Enterprise Linux 7.7 的任务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 set_release.yaml playbook:
ansible-playbook -i ~/inventory.yaml -f 25 ~/set_release.yaml --limit undercloud,Controller,Compute
$ ansible-playbook -i ~/inventory.yaml -f 25 ~/set_release.yaml --limit undercloud,Controller,ComputeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--limit选项,将内容应用到所有 Red Hat OpenStack Platform 节点。使用
openstack overcloud update命令在所有节点上执行软件包更新:openstack overcloud update stack -i overcloud
$ openstack overcloud update stack -i overcloudCopy to Clipboard Copied! Toggle word wrap Toggle overflow -i运行一个互动模式来按顺序更新每个节点。更新过程完成后,脚本会为您提供一个断点进行确认。如果没有-i选项,更新会在第一个断点保持暂停。因此,必须包括-i选项。脚本执行以下功能:
该脚本在一对一节点上运行:
- 对于 Controller 节点,这意味着完全软件包更新。
- 对于其他节点,这意味着仅更新 Puppet 模块。
Puppet 同时在所有节点上运行:
- 对于 Controller 节点,Puppet 运行会同步配置。
- 对于其他节点,Puppet 运行会更新软件包的其余部分并同步配置。
更新过程开始。在此过程中,director 报告
IN_PROGRESS状态,并定期提示您清除断点。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 按 Enter 清除
on_breakpoint列表中的最后一个节点中的断点。这将开始该节点的更新。这个脚本会自动预定义节点的更新顺序:
- 每个 Controller 节点单独
- 每个单独 Compute 节点
- 每个 Ceph Storage 节点
- 所有其他节点单独
建议您使用这个顺序来确保更新成功,特别是:
- 单独清除每个 Controller 节点的断点。如果节点的服务在更新后必须重启,则每个 Controller 节点都需要一个单独的软件包更新。这可减少到其他 Controller 节点上高可用性服务的中断。
- 在 Controller 节点更新后,清除每个 Compute 节点的断点。您还可以键入 Compute 节点名称来清除特定节点上的断点,或使用基于 Python 的正则表达式来一次性在多个 Compute 节点上清除断点。
- 清除每个 Ceph Storage 节点的断点。您还可以键入 Ceph Storage 节点名称来清除特定节点上的断点,或使用基于 Python 的正则表达式来一次性清除多个 Ceph Storage 节点上的断点。
- 清除所有剩余的断点以更新剩余的节点。您还可以键入节点名称来清除特定节点上的断点,或使用基于 Python 的正则表达式来一次性在多个节点上清除断点。
- 等待所有节点完成其更新。
更新命令会在更新完成后报告
COMPLETE状态:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您为 Controller 节点配置了隔离功能,更新过程可能会禁用它。更新过程完成后,在其中一个 Controller 节点上使用以下命令重新启用隔离:
sudo pcs property set stonith-enabled=true
$ sudo pcs property set stonith-enabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
更新过程不会自动重启 Overcloud 中的任何节点。内核和其他系统软件包的更新需要重启。检查每个节点上的 /var/log/yum.log 文件,以查看 内核或 openvswitch 软件包是否已更新其主版本或次版本。如果存在,请按照以下流程重新引导每个节点。