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 的备份。

流程

  1. 检查 rhel_reg_release 参数的订阅管理配置。如果没有设置此参数,您必须包括它并设置 7.7:

    parameter_defaults:
      ...
      rhel_reg_release: "7.7"
    Copy to Clipboard Toggle word wrap

    确保保存对 overcloud 订阅管理环境文件的更改。

  2. 使用您的原始 openstack overcloud deploy 命令更新当前计划,并包含 --update-plan-only 选项。例如:

    $ openstack overcloud deploy --update-plan-only \
      --templates  \
      -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
      -e /home/stack/templates/network-environment.yaml \
      -e /home/stack/templates/storage-environment.yaml \
      -e /home/stack/templates/rhel-registration/environment-rhel-registration.yaml \
      [-e <environment_file>|...]
    Copy to Clipboard Toggle word wrap

    --update-plan-only 仅更新存储在 director 中的 Overcloud 计划。使用 -e 选项包括与 Overcloud 相关的环境文件及其更新路径。环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。以下列表是环境文件顺序的示例:

    • 任何网络隔离文件,包括 heat 模板集合中的初始化文件(environments/network-isolation.yaml),然后是自定义 NIC 配置文件。
    • 任何外部负载均衡环境文件。
    • 任何存储环境文件。
    • 任何用于红帽 CDN 或 Satellite 注册的环境文件。
    • 任何其它自定义环境文件。
  3. 创建 overcloud 的静态清单文件:

    $ tripleo-ansible-inventory --ansible_ssh_user heat-admin --static-yaml-inventory ~/inventory.yaml
    Copy to Clipboard Toggle word wrap

    如果您使用不同于 overcloud 的默认 overcloud 名称,请使用 --plan 选项来设置 overcloud 的名称。

  4. 创建一个包含在所有节点上将操作系统版本设置为 Red Hat Enterprise Linux 7.7 的任务:

    $ cat > ~/set_release.yaml <<'EOF'
    - hosts: all
      gather_facts: false
      tasks:
        - name: set release to 7.7
          command: subscription-manager release --set=7.7
          become: true
    EOF
    Copy to Clipboard Toggle word wrap
  5. 运行 set_release.yaml playbook:

    $ ansible-playbook -i ~/inventory.yaml -f 25 ~/set_release.yaml --limit undercloud,Controller,Compute
    Copy to Clipboard Toggle word wrap

    使用 --limit 选项,将内容应用到所有 Red Hat OpenStack Platform 节点。

  6. 使用 openstack overcloud update 命令在所有节点上执行软件包更新:

    $ openstack overcloud update stack -i overcloud
    Copy to Clipboard Toggle word wrap

    -i 运行一个互动模式来按顺序更新每个节点。更新过程完成后,脚本会为您提供一个断点进行确认。如果没有 -i 选项,更新会在第一个断点保持暂停。因此,必须包括 -i 选项。

    脚本执行以下功能:

    1. 该脚本在一对一节点上运行:

      1. 对于 Controller 节点,这意味着完全软件包更新。
      2. 对于其他节点,这意味着仅更新 Puppet 模块。
    2. Puppet 同时在所有节点上运行:

      1. 对于 Controller 节点,Puppet 运行会同步配置。
      2. 对于其他节点,Puppet 运行会更新软件包的其余部分并同步配置。
  7. 更新过程开始。在此过程中,director 报告 IN_PROGRESS 状态,并定期提示您清除断点。例如:

    starting package update on stack overcloud
    IN_PROGRESS
    IN_PROGRESS
    WAITING
    on_breakpoint: [u'overcloud-compute-0', u'overcloud-controller-2', u'overcloud-controller-1', u'overcloud-controller-0']
    Breakpoint reached, continue? Regexp or Enter=proceed (will clear 49913767-e2dd-4772-b648-81e198f5ed00), no=cancel update, C-c=quit interactive mode:
    Copy to Clipboard Toggle word wrap

    按 Enter 清除 on_breakpoint 列表中的最后一个节点中的断点。这将开始该节点的更新。

  8. 这个脚本会自动预定义节点的更新顺序:

    • 每个 Controller 节点单独
    • 每个单独 Compute 节点
    • 每个 Ceph Storage 节点
    • 所有其他节点单独

    建议您使用这个顺序来确保更新成功,特别是:

    1. 单独清除每个 Controller 节点的断点。如果节点的服务在更新后必须重启,则每个 Controller 节点都需要一个单独的软件包更新。这可减少到其他 Controller 节点上高可用性服务的中断。
    2. 在 Controller 节点更新后,清除每个 Compute 节点的断点。您还可以键入 Compute 节点名称来清除特定节点上的断点,或使用基于 Python 的正则表达式来一次性在多个 Compute 节点上清除断点。
    3. 清除每个 Ceph Storage 节点的断点。您还可以键入 Ceph Storage 节点名称来清除特定节点上的断点,或使用基于 Python 的正则表达式来一次性清除多个 Ceph Storage 节点上的断点。
    4. 清除所有剩余的断点以更新剩余的节点。您还可以键入节点名称来清除特定节点上的断点,或使用基于 Python 的正则表达式来一次性在多个节点上清除断点。
    5. 等待所有节点完成其更新。
  9. 更新命令会在更新完成后报告 COMPLETE 状态:

    ...
    IN_PROGRESS
    IN_PROGRESS
    IN_PROGRESS
    COMPLETE
    update finished with status COMPLETE
    Copy to Clipboard Toggle word wrap
  10. 如果您为 Controller 节点配置了隔离功能,更新过程可能会禁用它。更新过程完成后,在其中一个 Controller 节点上使用以下命令重新启用隔离:

    $ sudo pcs property set stonith-enabled=true
    Copy to Clipboard Toggle word wrap

更新过程不会自动重启 Overcloud 中的任何节点。内核和其他系统软件包的更新需要重启。检查每个节点上的 /var/log/yum.log 文件,以查看 内核或 openvswitch 软件包是否已更新其主版本或次版本。如果存在,请按照以下流程重新引导每个节点。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat