Skip to content

Commit

Permalink
Added guide to migrate CentOS 7 to AlmaLinux 9 (#333)
Browse files Browse the repository at this point in the history
* Added guide to migrate CentOS 7 to AlmaLinux 9

* Added guide to migrate CentOS 7 to AlmaLinux 9

---------

Co-authored-by: Sofia Boldyreva <[email protected]>
  • Loading branch information
sboldyreva and Sofia Boldyreva authored Nov 28, 2023
1 parent 0467afb commit dc929bc
Show file tree
Hide file tree
Showing 3 changed files with 211 additions and 3 deletions.
7 changes: 4 additions & 3 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -160,10 +160,11 @@ module.exports = {
title: 'ELevate Project',
path: '/elevate/',
children: [
'/elevate/Contribution-guide',
'/elevate/ELevate-frequent-issues',
'/elevate/ELevate-testing-guide',
'/elevate/ELevate-quickstart-guide',
'/elevate/ELevating-CentOS7-to-AlmaLinux-9',
'/elevate/ELevate-testing-guide',
'/elevate/ELevate-frequent-issues',
'/elevate/Contribution-guide',
]
},
]
Expand Down
2 changes: 2 additions & 0 deletions docs/elevate/ELevate-quickstart-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ The ELevate project only supports official operating systems repositories. It do

This guide contains steps on how to upgrade your RHEL-based operating system to the next major version.

Please note that the ELevate project is designed to perform one-step migrations. If you wish to perform a two-steps migration from CentOS7, you need to split the process. Please check the [ELevating CentOS7 to AlmaLinux 9](/elevate/ELevating-CentOS7-to-AlmaLinux-9.md) guide for more information.

Currently, the following migration directions are available:

![image](/images/ELevate-scheme.svg)
Expand Down
205 changes: 205 additions & 0 deletions docs/elevate/ELevating-CentOS7-to-AlmaLinux-9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
---
title: "ELevating CentOS 7 to AlmaLinux 9"
---

# ELevating CentOS 7 to AlmaLinux 9

As the Leapp tool is designed to perform one-step migrations, in order to migrate your CentOS 7 machine to AlmaLinux 9 you need to split the migration process:
* CentOS 7 to AlmaLinux 8
* AlmaLinux 8 to AlmaLinux 9

## Migrate CentOS 7 to AlmaLinux 8

* Update the system to get the latest updates and reboot your machine.
```
sudo yum update -y
sudo reboot
```

* Install `elevate-release` package with the project repo and GPG key.
```
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
```

* Install leapp packages and migration data for AlmaLinux:
```
sudo yum install -y leapp-upgrade leapp-data-almalinux
```

* Start a preupgrade check. In the meanwhile, the Leapp utility creates a special */var/log/leapp/leapp-report.txt* file that contains possible problems and recommended solutions. No rpm packages will be installed at this phase.

:::warning
Preupgrade check will fail as the default install doesn't meet all requirements for migration.
:::

```
sudo leapp preupgrade
```

This summary report will help you get a picture of whether it is possible to continue the upgrade.

:::tip
In certain configurations, Leapp generates */var/log/leapp/answerfile* with true/false questions. Leapp utility requires answers to all these questions in order to proceed with the upgrade.
:::

* The following fixes from *the /var/log/leapp/leapp-report.txt* file are the most popular for CentOS 7, but it's recommended to review the whole file.
```
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
```

Check the [ELevate Frequent Issues](/elevate/ELevate-frequent-issues) page for known and frequent issues and guidance steps to solve them.

* Start an upgrade. You'll be offered to reboot the system after this process is completed.
```
sudo leapp upgrade
sudo reboot
```

* A new entry in GRUB called `ELevate-Upgrade-Initramfs` will appear. The system will be automatically booted into it.
See how the update process goes in the console.

* After reboot, login to the system and check how the migration went. Verify that the current OS is the one you need. Check logs and packages left from the previous OS version, consider removing or updating them manually.
```
cat /etc/redhat-release
cat /etc/os-release
rpm -qa | grep el7
cat /var/log/leapp/leapp-report.txt
cat /var/log/leapp/leapp-upgrade.log
```

## Prepare the system for migration to AlmaLinux 9

When successfully migrated to AlmaLinux 8 OS, consider performing these steps to prepare your system for migration to AlmaLinux 9:

* Navigate to the **/etc/** directory and use an editor of your choice to edit the **yum.conf** file. You need to remove everything from the **exclude** line especially that refers to elevate or leapp.

##### An example of yum.conf file:
```bash
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
exclude=python2-leapp,snactor,leapp-upgrade-el7toel8,leapp
```

* Then navigate to the */etc/dnf/* directory and use an editor of your choice to do the same in the **dnf.conf** file.
* Now you can remove/manually upgrade packages left from CentOS 7 without any conflicts.
* Check packages left from CentOS 7:
```
rpm -qa | grep el7
```
##### An example output with a list of packages:
```
leapp-upgrade-el7toel8-0.16.0-6.el7.elevate.17.noarch
yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch
python2-leapp-0.14.0-1.el7.noarch
leapp-data-almalinux-0.1-6.el7.noarch
kernel-3.10.0-1160.102.1.el7.x86_64
kernel-3.10.0-1160.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
btrfs-progs-4.9.1-1.el7.x86_64
elevate-release-1.0-2.el7.noarch
leapp-0.14.0-1.el7.noarch
```
As mentioned above, consider removing these packages or upgrading them manually to proceed with migration to AlmaLinux 9.

:::tip
If you face difficulties while removing the packages, the following command might help you:
```
rpm -e --nodeps <package_name>
```
:::

* You can also check for the packages left from the migration process and remove them:
```
rpm -qa | grep elevate
rpm -qa | grep leapp
```
* Check whether you have the */root/tmp_leapp_py3* directory created and if so delete it.
```
sudo rm -fr /root/tmp_leapp_py3
```
* Clean up your machine.
```
sudo dnf clean all
```

* You may also have to remove old RSA/SHA1 GPG keys. List the keys:
```
rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'
```

To remove them, use use the `rpm -e` command:
```
rpm -e [keyname]
```
After these preparations are completed, you can migrate your AlmaLinux 8 machine to AlmaLinux 9.

## Migrating AlmaLinux 8 to AlmaLinux 9

* Install `elevate-release` package with the project repo and GPG key.
```
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
```

* Install leapp packages and migration data for AlmaLinux:
```
sudo yum install -y leapp-upgrade leapp-data-almalinux
```

* Start a preupgrade check. In the meanwhile, the Leapp utility creates a special */var/log/leapp/leapp-report.txt* file that contains possible problems and recommended solutions. No rpm packages will be installed at this phase.

:::warning
Preupgrade check will fail as the default install doesn't meet all requirements for migration.
:::

```
sudo leapp preupgrade
```

This summary report will help you get a picture of whether it is possible to continue the upgrade.

:::tip
In certain configurations, Leapp generates */var/log/leapp/answerfile* with true/false questions. Leapp utility requires answers to all these questions in order to proceed with the upgrade.
:::

* The following fixes from *the /var/log/leapp/leapp-report.txt* file are the most popular fixes for RHEL8-based operating systems:
```bash
sudo sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf
sudo leapp answer --section check_vdo.no_vdo_devices=True
```

You might also find the following issue in the **leapp-report** file that can interfere with the migration. Consider removing the file:
```bash
Network configuration for unsupported device types detected
Summary: RHEL 9 does not support the legacy network-scripts package that was deprecated in RHEL 8 in favor of NetworkManager. Files for device types that are not supported by NetworkManager are present in the system. Files with the problematic configuration:
- /etc/sysconfig/network-scripts/ifcfg-eth0
```
Check the [ELevate Frequent Issues](/elevate/ELevate-frequent-issues) page for known and frequent issues and guidance steps to solve them.
* Start an upgrade. You'll be offered to reboot the system after this process is completed.
```
sudo leapp upgrade
sudo reboot
```
:::tip
You might want to remove the **make-devel** package as it conflicts when running `leapp upgrade` and thus this step fails.
:::
* A new entry in GRUB called `ELevate-Upgrade-Initramfs` will appear. The system will be automatically booted into it.
See how the update process goes in the console.
* After reboot, login to the system and check how the migration went. Verify that the current OS is the one you need. Check logs and packages left from the previous OS version, consider removing or updating them manually.
```
cat /etc/redhat-release
cat /etc/os-release
rpm -qa | grep el8
cat /var/log/leapp/leapp-report.txt
cat /var/log/leapp/leapp-upgrade.log
```

0 comments on commit dc929bc

Please sign in to comment.