第 8 章 为 Leapp 升级配置 overcloud

长生命 Red Hat OpenStack Platform (RHOSP)升级需要一个从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8 的基本操作系统。Red Hat Enterprise Linux 7 使用 Leapp 程序执行到 Red Hat Enterprise Linux 8 的升级。有关 Leapp 及其依赖项的更多信息,请参阅 为升级准备 RHEL 7 系统

overcloud 升级框架自动运行 leapp 升级。为确保 RHOSP 升级成功,建议您手动运行预升级报告来识别并解决任何潜在问题。对每个 Compute、Controller 和 Ceph Storage 角色至少有一个主机运行预升级报告。有关 Leapp 预升级报告的更多信息,请参阅 检查预升级报告

8.1. 创建升级环境文件

升级过程使用环境文件来启用升级过程并配置特定的升级参数。

流程

  1. stack 用户的身份登录 undercloud。
  2. templates 目录中 创建一个名为 upgrade-environment.yaml 的环境文件:

    $ touch templates/upgrades-environment.yaml
  3. 编辑该文件并添加以下强制内容:

    parameter_defaults:
      UpgradeLeappDevelSkip: "LEAPP_UNSUPPORTED=1 LEAPP_DEVEL_TARGET_RELEASE=8.2"
      LeappInitCommand: |
        for module in pata_acpi floppy; do sudo sed -i "/^${module}$/d" /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/kernel/checkkerneldrivers/files/removed_drivers.txt; done
        sudo rm -f /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/persistentnetnamesdisable/actor.py
        sudo yum -y remove mariadb-server* || true
      UpgradeInitCommand: "sudo dnf config-manager --save --setopt exclude=''"
    • UpgradeLeappDevelSkip 会跳过 Leapp 检查,并在 Leapp 运行时设置环境变量。
    • LeappInitCommand 会传递在每个 overcloud 节点上运行的命令或脚本片断,并为 Leapp 升级准备节点。
    • UpgradeInitCommand 传递在每个 overcloud 节点上运行的命令或脚本片断。dnf config-manager --save --setopt exclude='' 命令从 DNF exclude 中删除 Leapp 软件包,以便成功删除 python2 软件包。
  4. 可选: 如果您在环境中使用 TLS-Everywhere 并希望从 authconfig 迁移到 authselect,请将 authselect_check.confirm 参数设置为 True 以避免 bug BZ#1978228 - OSP13→16.2 Leapp upgrade failed with TLSEverywhere:

    parameter_defaults:
      LeappInitCommand: |
        sudo leapp answer --section authselect_check.confirm=True --add

    否则,将值设为 False

    注意

    使用 | 语法将多个命令传递给 LeappInitCommand 参数:

    parameter-defaults:
      LeappInitCommand: |
        <command_1>
        <command_2>
  5. 保存 upgrade -environment.yaml 文件。