Red Hat et dérivées version SERVEUR

Alma Linux : Mise à niveau de EL8 à EL9

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction




Red Hat Enterprise Linux permet d'effectuer une montée de version de l'OS, mais ses clones 1 pour 1 "gratuits" ne permettent pas à ce jour cette opération, sauf Alma Linux.

Dans un environnement de production, il est toujours délicat d'effectuer une montée de version de l'OS, car bon nombre de composants sont impactés, comme les serveurs web, moteurs de base de données, reverse-proxys ou systèmes de fichiers distribués.
Il faudra prendre garde aux impacts potentiels de cette montée de version, tant sur le plan logiciel que pour les prérequis matériels.

Dans cet article, nous allons voir comment mettre à niveau un système Alma Linux 8 vers Alma Linux 9.

Prérequis



Avant d'effectuer la mise à niveau, s'assurer de la compatibilité du métériel, notamment sur le CPU sui doit supporter x86-64-v2.

Première étape, mettre à jour complètement son système :

Code BASH :
dnf upgrade


Puis on redémarre le serveur, afin que tous les services soient démarrés dans leur dernière version, et que le dernier noyau installé doit amorcé :

Code BASH :
reboot


Ensuite, on va installer le dépôt Elevate :

Code BASH :
dnf install https://repo.almalinux.org/elevate/elevate-release-latest-el8.noarch.rpm


Ensuite, on installe l'outil de mise à niveau leapp + les données :

Code BASH :
dnf install -y leapp-upgrade leapp-data-almalinux


Préparation à la mise à niveau



En root, on va lancer la vérification pré-upgrade (comme sous Red Hat Eenterprise Linux) :

Code BASH :
leapp preupgrade


Il est possible qu'il y ait des avertissements ou erreurs, comme sur mon système :

Code TEXT :
============================================================
                     UPGRADE INHIBITED
============================================================
Upgrade has been inhibited due to the following problems:
    1. Inhibitor: Firewalld Configuration AllowZoneDrifting Is Unsupported
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
 


Elles seront à traiter.

Les informations seront stockées dans le fichier /var/log/leapp/leapp-report.txt qui donne des actions explicites à la résolution :

Code TEXT :
Risk Factor: high (inhibitor)
Title: Firewalld Configuration AllowZoneDrifting Is Unsupported
Summary: Firewalld has enabled configuration option "AllowZoneDrifiting" which has been removed in RHEL-9. New behavior is as if "AllowZoneDrifiting" was set to "no".
Remediation: [hint] Set AllowZoneDrifting=no in /etc/firewalld/firewalld.conf
[command] sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf
Key: 5b1cf050e1a877b0358b6e8c612277c591d40c13
----------------------------------------
Risk Factor: high
Title: Packages not signed by Red Hat found on the system
Summary: The following packages have not been signed by Red Hat and may be removed during the upgrade process in case Red Hat-signed packages to be removed during the upgrade depend on them:
- elevate-release
- epel-release
- gpg-pubkey
- leapp
- leapp-data-almalinux
- leapp-deps
- leapp-upgrade-el8toel9
- leapp-upgrade-el8toel9-deps
- python3-leapp
Key: 13f0791ae5f19f50e7d0d606fb6501f91b1efb2c
----------------------------------------
Risk Factor: high
Title: Leapp could not identify where GRUB core is located
Summary: We assume GRUB core is located on the same device as /boot. Leapp needs to update GRUB core as it is not done automatically on legacy (BIOS) systems.
Remediation: [hint] Please run "grub2-install <GRUB_DEVICE> command manually after upgrade
Key: ca7a1a66906a7df3da890aa538562708d3ea6ecd
----------------------------------------
Risk Factor: medium
Title: MariaDB (mariadb-server) has been detected on your system
Summary: MariaDB server component will be upgraded. Since RHEL-9 includes MariaDB server 10.5 by default, which is incompatible with 10.3 included in RHEL-8, it is necessary to proceed with additional steps for the complete upgrade of the MariaDB data.
Remediation: [hint] Back up your data before proceeding with the upgrade and follow steps in the documentation section "Migrating to a RHEL 9 version of MariaDB" after the upgrade.
Key: a0326f237a13f6a4ada2c6648d6c6387f5520de7
----------------------------------------
Risk Factor: low
Title: SElinux will be set to permissive mode
Summary: SElinux will be set to permissive mode. Current mode: enforcing. This action is required by the upgrade process to make sure the upgraded system can boot without beinig blocked by SElinux rules.
Remediation: [hint] Make sure there are no SElinux related warnings after the upgrade and enable SElinux manually afterwards. Notice: You can ignore the "/root/tmp_leapp_py3" SElinux warnings.
Key: 39d7183dafba798aa4bbb1e70b0ef2bbe5b1772f
----------------------------------------
Risk Factor: info
Title: SElinux relabeling will be scheduled
Summary: SElinux relabeling will be scheduled as the status is permissive/enforcing.
Key: 8fb81863f8413bd617c2a55b69b8e10ff03d7c72
----------------------------------------


Après avoir résolu les problèmes (notamment celui de firewalld bloquant, et tenu compte des avertissements (comme le passage en permissive de SELinux qui est actif en mode enforced), relancer le preupgrade :

Code BASH :
leapp preupgrade


Si tout est bon, on peut passer à la suite.

Mise à niveau



Si on n'a plus d'erreurs, on peut lancer la mise à niveau avec la commande suivante :

Code BASH :
leapp upgrade


On constate qu'une nouvelle entrée va être créé au démarrage :
Code TEXT :
====> * add_upgrade_boot_entry
        Add new boot entry for Leapp provided initramfs.
A reboot is required to continue. Please reboot your system.

Le processus de mise à niveau se fera au reboot suivant via une entrée dédiée.

On lance donc le reboot :

Code BASH :
reboot


L'entrée Elevate est sélectionnée automatiquement :

alma-linux-elevate-8to9



Et l'upgrade commence :

alma-linux-elevate-8to9-upgrade



Après quelques minutes, la mise à niveau est terminée :

Code BASH :
cat /etc/redhat-release


Code TEXT :
AlmaLinux release 9.1 (Lime Lynx)


Vérifications post-upgrade



On peut vérifier les paquets Alma Linux 8 restants avec la commande suivante :

Code BASH :
rpm -qa | grep el8


Chez moi j'ai ceci :

Code TEXT :
kernel-modules-4.18.0-425.19.2.el8_7.x86_64
python36-3.6.8-38.module_el8.5.0+2569+5c5719bc.x86_64
leapp-0.14.0-1.el8_6.noarch
leapp-data-almalinux-0.2-2.el8.noarch
iwl6000-firmware-9.221.4.1-111.el8_7.1.noarch
python3-leapp-0.14.0-1.el8_6.noarch
leapp-upgrade-el8toel9-0.16.0-6.el8_6.elevate.10.noarch
kernel-core-4.18.0-425.19.2.el8_7.x86_64
elevate-release-1.0-2.el8.noarch
kernel-4.18.0-425.19.2.el8_7.x86_64


On pourra supprimer le dépôt ELevate qui ne sert plus ainsi que l'utilitaire leapp :

Code BASH :
rpm -evh elevate-release leapp leapp-data-almalinux leapp-upgrade-el8toel9 python3-leapp


On termine avec un petit :
Code BASH :
dnf distro-sync


Evidemment, s'il y a des actions à effectuer côté applicatifs et serveurs, telles que des upgrade de base MariaDB, c'est le moment de les faire.