注意:

使用 Leapp 升级 Oracle Linux

简介

Leapp 实用程序是一个用于更新和升级操作系统以及应用程序的框架。通过实用程序的组件软件包,可以将不同的工作流创建到用于更新软件的配置文件中。

Leapp 操作包括两个阶段:

Leapp 可用于升级 Oracle Linux 7 Oracle Cloud Infrastructure 实例以及 Oracle Linux 7 内部部署系统。

此实验室引导您完成将当前发行版 Oracle Linux 7 Oracle Cloud Infrastructure 实例升级到 Oracle Linux 8 的过程。

其他任何操作系统或版本均不支持 Leapp。

注:在生产环境中使用 Leapp 之前,建议您在测试环境中熟悉 Leapp 升级过程。这样,您可以更好地了解流程及其报告,并测试可能遇到的任何安全或兼容性问题。

目标

在此实验室中,您将学习:

先决条件

注:您可以在以下文档链接中查看在通过 Leapp 升级之前应执行的系统和内核先决条件及升级前检查的完整列表:Performing System Upgrades with Leapp

设置实验室环境

使用免费实验室环境时,请使用此链接查看如何建立 SSH 连接和其他使用说明。Oracle Linux Lab Basics

这些部分显示了如何从桌面上的终端与实例建立 SSH 连接。

升级前的准备工作

此练习中使用的实例预配置了特定于环境的设置,例如代理设置。

某些通常执行的升级前检查将跳过,因为在此环境中不需要这些检查。

注意:您可以观看一个免费视频,展示此实验中使用的 Leapp 升级过程。您将在本实验末尾的更多信息部分中找到该链接。

  1. 建立与实验室系统实例的 SSH 连接。

    请记住 Oracle Linux Lab Basics 的链接说明如何建立 SSH 连接和其他使用说明。

  2. 验证系统语言环境是否设置为 en_US。UTF-8

    cat /etc/locale.conf
    

    如果未正确设置语言环境,请使用命令 sudo localectl set-locale LANG=en_US.UTF-8 配置此项。

更新到最新软件包

使用 Yum 将所有系统软件包更新到最新版本。

sudo yum update -y

这需要几分钟时间,更新完成后,重新引导系统。

sudo reboot

等待几分钟后重新引导完成,然后将 SSH 连接重新连接到实例。

如果连接失败,请稍候,然后重试。

安装 Leapp 实用程序

安装 Leapp 实用程序及其支持系统信息库。

sudo yum install -y leapp --enablerepo=ol7_leapp,ol7_latest

运行升级前检查

预升级处理将评估系统是否为成功升级做好准备。它标识可能会影响或阻止升级过程的潜在问题。

可以随时使用升级前检查来评估系统的状态并确定发生冲突的位置。它不会更改系统,而是创建报告文件和调试日志,其中包含有关系统、其配置和潜在升级问题的信息。

  1. 运行 leapp preupgrade 命令以启动升级前进程。

    此实验系统是云实例,因此请使用命令开关 --oci

    sudo leapp preupgrade --oci
    

    如果系统是非云系统,则使用交换机 --oraclelinux

    --oci--oraclelinux 是用于预设与云或非云系统相关的存储库和配置信息的便利开关。

    • 输出示例:
    ============================================================  
                          UPGRADE INHIBITED                     
    ============================================================  
                                                                    
    Upgrade has been inhibited due to the following problems:  
        1. Inhibitor: Missing required answers in the answer file  
    Consult the pre-upgrade report for details and possible remediation.  
                                                                    
    ============================================================  
                       UPGRADE INHIBITED                        
    ============================================================  
                                                                    
                                                                    
    Debug output written to /var/log/leapp/leapp-preupgrade.log  
                                                                
    ============================================================  
                             REPORT                             
    ============================================================  
                                                                   
    A report has been generated at /var/log/leapp/leapp-report.json
    A report has been generated at /var/log/leapp/leapp-report.txt
                                                                  
    ============================================================
                         END OF REPORT                          
    ============================================================  
                                                                  
    Answerfile has been generated at /var/log/leapp/answerfile  
    

    创建 leapp-report.txt 文件和 answerfile,调试信息保存在 leapp-preupgrade.log 日志文件中。

    在此实验环境中,屏幕结果标识了一个会阻止升级的问题。文件中可能还存在其他禁止问题。

  2. 检查 leapp-report.txt 文件。

    sudo cat /var/log/leapp/leapp-report.txt
    

    标识标记为 Risk Factor: high (inhibitor) 的任何高风险条目。这将阻止升级完成。

    此报告汇总了问题并提供了解决问题的解决方案。

    此报告是一个有用的自测工具,它提供了有关系统中配置内容的良好视图,无论是否要升级,可能会存在哪些潜在冲突。

  3. 检查 answerfile

    sudo cat /var/log/leapp/answerfile
    
    • 输出示例:
    [remove_pam_pkcs11_module_check]  
    # Title:              None  
    # Reason:             Confirmation  
    # =================== remove_pam_pkcs11_module_check.confirm ==================  
    # Label:              Disable pam_pkcs11 module in PAM configuration? If no, the upgrade process will be interrupted.  
    # Description:        PAM module pam_pkcs11 is no longer available in OL-8 since it was replaced by SSSD.  
    # Type:               bool  
    # Default:            None  
    # Available choices: True/False  
    # Unanswered question. Uncomment the following line with your answer  
    # confirm =  
    

    Available Choices: True/False 部分将告知如何修改 answerfile 以解决发现的问题。

    使用 sudo leapp answer 命令为 [remove_pam_pkcs11_module_check] PAM 模块项提供答案 True

    sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
    

    注:如果您愿意,也可以使用 sudo vi /var/log/leapp/answerfile 命令编辑 answerfile 并插入 True 设置。

  4. 验证是否已修改 answerfile

    sudo cat /var/log/leapp/answerfile
    
    • 输出示例:
    [remove_pam_pkcs11_module_check]  
    confirm = True  
    

    请记住,必须解析 answerfile 中的所有项以及 leapp-report.txt 文件中的任何高风险 Risk Factor: high (inhibitor) 条目。

    您可以随时运行预升级命令来生成报告文件并确保满足所需的项。

升级系统

要与升级后的版本进行比较,请验证系统的当前 OS 和内核版本。

  1. 检查系统上运行的 Oracle Linux 版本。

    sudo cat /etc/oracle-release
    
  2. 检查使用的内核版本。

    uname -r
    
  3. 运行升级处理。

    sudo leapp upgrade --oci
    

    注:实验室系统是一个云实例,因此再次使用命令开关 --oci

    升级过程大约需要 10 分钟,完成后返回到命令提示符。

    • 输出示例:
    The downloaded packages were saved in cache until the next successful  
    transaction.  
    You can remove cached packages by executing 'dnf clean packages'.  
    ==> Processing phase 'InterimPreparation'  
    ====> * efi_interim_fix  
           Adjust EFI boot entry for first reboot  
    ====> * initram_disk_generator  
           Creates the upgrade initram disk  
    ====> * add_upgrade_boot_entry  
           Add new boot entry for Leapp provided initramfs.  
    A reboot is required to continue. Please reboot your system.  
      
    Debug output written to /var/log/leapp/leapp-upgrade.log  
      
    ============================================================  
                              REPORT
    ============================================================  
      
    A report has been generated at /var/log/leapp/leapp-report.json  
    A report has been generated at /var/log/leapp/leapp-report.txt  
      
    ============================================================  
                          END OF REPORT  
    ============================================================  
      
    Answerfile has been generated at /var/log/leapp/answerfile  
    

    升级过程还会更新 answerfile leapp-report.txt,并创建 leapp-upgrade.log 日志文件。

    注:如果未在 leapp-report.txt 文件中处理 answerfile 项和 Risk Factor: high (inhibitor) 项,该进程将终止到命令行并告知遇到的问题。

  4. 升级完成后,重新引导系统。

    sudo reboot
    

    重新引导将断开 SSH 连接。在引导过程中,Leapp 进程会自动升级软件包。

    升级操作还包括多个自动重新引导。在完成所有重新引导之前,您将无法重新连接 SSH 会话。

    等待大约 15 分钟,然后将 SSH 会话重新连接到系统。如果连接失败,请等待几分钟,然后重试。

验证升级

将当前用于系统的 OS 版本和内核与升级前版本进行比较。

  1. 检查正在运行的 Oracle Linux 版本。

    sudo cat /etc/oracle-release
    
  2. 检查使用的内核版本。

    uname -r
    

    升级已完成,因为您现在看到系统正在运行 Oracle Linux 8.5,并且使用的内核显示了 el8

详细信息

请参阅其他相关资源:

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle 学习资源管理器。

有关产品文档,请访问 Oracle 帮助中心