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 存储库映射),附加到 Leapp 程序所需的知识基本文档数据,以便从 RHEL 7 原位升级到 RHEL 8,并将这些文件放在
/etc/leapp/files/
目录中。 更新您的红帽订阅:
如果您的 undercloud 使用红帽客户门户网站进行注册,请刷新您当前的订阅以获取 Red Hat Enterprise Linux 8.4 内容的访问权限:
$ sudo subscription-manager refresh
如果您的 undercloud 使用 Red Hat Satellite Server 进行注册,请将 undercloud 重新注册到与 Red Hat OpenStack Platform(RHOSP)16.2 激活码关联的内容视图。
$ sudo subscription-manager register --force --org ORG --activationkey ACTIVATION_KEY
注意为 Red Hat OpenStack Platform 16.2 创建的内容视图必须包含 Red Hat Enterprise Linux 8.4 的内容。
Red Hat OpenStack Platform 16.2 使用了一个新版本的 Open vSwitch。通过
to_remove
和to_install
事务文件替换 Open vSwitch 版本:$ echo 'openvswitch2.11' | sudo tee -a /etc/leapp/transaction/to_remove $ echo 'openvswitch2.15' | sudo tee -a /etc/leapp/transaction/to_install
使用
to_keep
事务文件进行升级保留 Red Hat Ceph Storage 3 的ceph-ansible
版本:$ 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
删除
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.2,必须将 RHEL 8 次版本设置为8.4
:$ export LEAPP_UNSUPPORTED=1 $ export LEAPP_DEVEL_TARGET_RELEASE=8.4
每次使用带有
LEAPP_DEVEL
前缀的环境变量时,您必须使用LEAPP_UNSUPPORTED
环境变量。从 Leapp 进程中删除持久性网络名称:
注意如果您在执行 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-eus-rpms --enablerepo rhel-8-for-x86_64-appstream-eus-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.2 转换,特别是与新版本的 Open vSwitch 一起。-
等待
leapp upgrade
命令成功完成。 在根目录中创建一个空
.autorelabel
文件:$ sudo touch /.autorelabel
重启后,SELinux 会检测到此文件并自动重新标记文件系统。
重新引导 undercloud:
$ sudo reboot
从 DNF 配置中定义的事务排除项中删除 Leapp 软件包:
$ sudo dnf config-manager --save --setopt exclude=''