5.2. 在 undercloud 上执行 Leapp 升级
安装并运行 Leapp 程序将操作系统升级到 Red Hat Enterprise Linux (RHEL) 8。
先决条件
- 在安装并运行 Leapp 前,请确定您已熟悉了 第 2.4 节 “Leapp 升级使用 Red Hat OpenStack Platform” 部分。
- 在执行 Leapp 升级前,请确保完成 第 4.3 节 “为 undercloud 节点使用可预测的 NIC 名称” 部分。如果您在执行 Leapp 升级过程前没有重命名网络接口名称,则接口名称可能会在升级到 RHEL 8.2 后有所变化。
流程
-
以
stack用户的身份登录 undercloud。 安装 Leapp 工具和 jq:
$ sudo yum install leapp $ sudo yum install jq-
下载额外所需的数据文件(RPM 软件包更改和 RPM 存储库映射)附加到 知识库文章 Data required by the Leapp utility for an in-place upgrade from RHEL 7 to RHEL 8,并将这些文件放在
/etc/leapp/files/目录中。 更新您的红帽订阅:
如果您的 undercloud 使用红帽客户门户网站进行注册,请刷新当前订阅以获取对 Red Hat Enterprise Linux 8.2 内容的访问权限:
$ sudo subscription-manager refresh如果您的 undercloud 使用 Red Hat Satellite 服务器进行注册,请将 undercloud 重新注册到与您的 Red Hat OpenStack Platform (RHOSP) 16.1 激活码关联的内容视图。
$ sudo subscription-manager register --force --org ORG --activationkey ACTIVATION_KEY注意为 Red Hat OpenStack Platform 16.1 创建的内容视图必须包含 Red Hat Enterprise Linux 8.2 的内容。
Red Hat OpenStack Platform 16.1 使用 Open vSwitch 的较新版本。通过
to_remove和to_install事务文件替换 Open vSwitch 版本:$ echo 'openvswitch2.11' | sudo tee -a /etc/leapp/transaction/to_remove $ echo 'openvswitch2.13' | sudo tee -a /etc/leapp/transaction/to_install使用
to_keep事务文件升级保留ceph-ansible的 Red Hat Ceph Storage 3 版本:$ echo 'ceph-ansible' | sudo tee -a /etc/leapp/transaction/to_keep调整 RHEL 8 中不再支持的内核模块:
$ if [ -f /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/kernel/checkkerneldrivers/files/removed_drivers.txt ]; then 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 else for module in pata_acpi floppy; do jq ". | del(.data[] | select(.driver_name == \"${module}\"))" /etc/leapp/files/device_driver_deprecation_data.json | sudo tee /etc/leapp/files/device_driver_deprecation_data.json_modified mv /etc/leapp/files/device_driver_deprecation_data.json_modified /etc/leapp/files/device_driver_deprecation_data.json done fi运行
leapp answer命令并指定 Leapp 回答来删除pam_pkcs11模块:$ sudo leapp answer --add --section remove_pam_pkcs11_module_check.confirm=True可选:如果您的环境使用 TLS-Everywhere 架构部署,并使用已弃用的
authconfig工具在您的系统中配置身份验证,请使用authselect工具配置 RHEL 8 系统:$ sudo leapp answer --add --section authselect_check.confirm=True有关 Leapp 升级过程中身份验证配置的更多信息,请参阅 从 RHEL 7 升级到 RHEL 8 中的已知问题。
设置
LEAPP_DEVEL_TARGET_RELEASE和LEAPP_UNSUPPORTED环境变量,以指定您要升级到的 RHEL 8 次版本。对于 RHOSP 16.1,您必须将 RHEL 8 次版本设置为8.2:$ export LEAPP_UNSUPPORTED=1 $ export LEAPP_DEVEL_TARGET_RELEASE=8.2每次使用带有
LEAPP_DEVEL前缀的环境变量时,都必须使用LEAPP_UNSUPPORTED环境变量。从 Leapp 进程中删除持久性网络名称 actor :
注意如果您在执行 Leapp 升级过程前没有重命名网络接口名称,则接口名称可能会在升级到 RHEL 8.2 后有所变化。有关重命名网络接口名称的详情请参考 第 4.3 节 “为 undercloud 节点使用可预测的 NIC 名称”。
$ sudo rm -f /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/persistentnetnamesdisable/actor.py启动 Leapp 升级过程:
$ sudo -E leapp upgrade --debug --enablerepo rhel-8-for-x86_64-baseos-tus-rpms --enablerepo rhel-8-for-x86_64-appstream-tus-rpms --enablerepo fast-datapath-for-rhel-8-x86_64-rpms --enablerepo ansible-2.9-for-rhel-8-x86_64-rpms使用
--enablerepo选项设置您要在 Leapp 升级过程中启用的软件仓库。您必须包含这些软件仓库才能促进 Red Hat OpenStack Platform 16.1 转换,特别是 Open vSwitch 的较新版本。-
等待
leapp upgrade命令成功完成。 在您的根目录中创建空的
.autorelabel文件:$ sudo touch /.autorelabel重启后,SELinux 会检测此文件并自动重新标记文件系统。
重新引导 undercloud:
$ sudo reboot从 DNF 配置中定义的事务排除中删除 Leapp 软件包:
$ sudo dnf config-manager --save --setopt exclude=''