Saturday, May 21, 2022

How to Use ELevate Script to Upgrade CentOS to AlmaLinux

Step 1: Install ELevate

 Install elevate-release package in your CentOS 7 system using command:
$ sudo yum install
Step 2: Install Leapp and migration data 

 The elevate-release package provides the Leapp utility and the necessary data to migrate Enterprise Linux 7.x to any Enterprise Linux 8.x versions of our choice. Depending upon the distribution you want to upgrade, you need to install any one of the following packages:
For instance, if you want to migrate CentOS 7 to AlmaLinux 8, you need to install the following packages:
$ sudo yum install -y leapp-upgrade leapp-data-almalinux
To migrate CentOS 7 to CentOS 8, install the following packages:
$ sudo yum install -y leapp-upgrade leapp-data-centos
To migrate CentOS 7 to Oracle Linux 8, install the following packages:
$ sudo yum install -y leapp-upgrade leapp-data-oraclelinux
To migrate CentOS 7 to Rocky Linux 8, install the following packages:
$ sudo yum install -y leapp-upgrade leapp-data-rocky
We have now installed the leap-upgrade package and the migration data for the OS we want to upgrade. For the purpose of this guide, I am going to upgrade CentOS 7 to AlmaLinux 8. 

 Step 3: Start preupgrade check 

 Next run the following command to check if upgrade is possible or not:
$ sudo leapp preupgrade
This will perform a series of actions and verify if it is possible to perform the upgrade.

==> Processing phase `configuration_phase`
====> * ipu_workflow_config
        IPU workflow config actor
==> Processing phase `FactsCollection`
====> * scanmemory
        Scan Memory of the machine.
====> * source_boot_loader_scanner
        Scans the boot loader configuration on the source system.
                     UPGRADE INHIBITED                      

Upgrade has been inhibited due to the following problems:
    1. Inhibitor: Detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed.
    2. Inhibitor: Multiple devel kernels installed
    3. Inhibitor: Possible problems with remote login using root account
    4. 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


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

Start preupgrade check
At the end of the preupgrade check, the Leapp utility will generate a report in /var/log/leapp/leapp-report.txt file. This file contains possible problems and recommended solutions. No rpm packages will be installed at this phase.


Preupgrade check will fail if the default CentOS 7 doesn't meet all requirements for migration. In that case, you need to fix all the problems and try again.

The following fixes from the /var/log/leapp/leapp-report.txt file are mandatory, but you can also review the rest of them if needed.
In my case, I fixed the following issues:
$ sudo rmmod pata_acpi
$ echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
$ sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
I also had to remove the extra kernel devels. List the installed kernels in CentOS:
$ rpm -qa kernel
As you see above, there are currently two kernels installed in my system. Remove the old kernel and kernel-devels and keep only the currently active Kernel using command:
$ sudo package-cleanup --oldkernels --count=1
Once you fixed all the problems, run the following command to migrate CentOS 7 to any Enterprise Linux 8.x of you choice:
$ sudo leapp upgrade
Once the upgrade is completed, reboot your system:
$ sudo reboot
A new entry called ELevate-Upgrade-Initramfs in the GRUB menu will appear. The system will be automatically booted into it. You can view the how the update process goes in the console. System will automatically reboot once the upgrade is completed. The GRUB menu entries will be automatically updated depending upon the OS. Login to the system and verify that the current OS is the one you need.
$ cat /etc/os-release

Sample output:

VERSION="8.4 (Electric Cheetah)"
ID_LIKE="rhel centos fedora"
PRETTY_NAME="AlmaLinux 8.4 (Electric Cheetah)"

Check AlmaLinux version
Check AlmaLinux version
Great! We've successfully upgraded CentOS 7 to AlmaLinux 8.4 version.
Clear cache (Optional) All the downloaded packages during the migration will be saved in cache until the next successful transaction. You can remove cached packages by executing the following command as sudo or root user:
$ sudo dnf clean packages
Update hostname Finally, update the hostname, username to match with AlmaLinux.
$ sudo hostnamectl set-hostname almalinux8
All done! Reboot your system to take effect the changes.


Post a Comment