Alma Linux : Mise à niveau de EL8 à EL9
Table des matières
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. (Oracle le permet également mais n'est pas un clone 1 pour 1 et se démarque notamment avec son kernel UEK et ses dépôts spécifiques)
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, systèmes de fichiers distribués ou openjdk.
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.
A noter que les préparatifs à cette mise à niveau et le téléchargement se font serveur en ligne. Cependant, la migration se fait au reboot. Cela permet notamment de n'avoir aucun service système en fonctionnement, tel qu'un moteur de base de données, ou des services de serveur de fichiers.
Avant d'effectuer la mise à niveau, s'assurer de la compatibilité du métériel, notamment sur le CPU qui doit supporter x86-64-v2.
Première étape, mettre à jour complètement son système :
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é soit amorcé :
Ensuite, on va installer le dépôt Elevate :
Ensuite, on installe l'outil de mise à niveau leapp + les données :
En root, on va lancer la vérification pré-upgrade (comme sous Red Hat Eenterprise Linux) :
Il est possible qu'il y ait des avertissements ou erreurs, comme sur mon système :
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 :
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 :
Si tout est bon, on peut passer à la suite.
Si on n'a plus d'erreurs, on peut lancer la mise à niveau avec la commande suivante :
On constate qu'une nouvelle entrée va être créé au démarrage :
Le processus de mise à niveau se fera au reboot suivant via une entrée dédiée.
On lance donc le reboot :
L'entrée Elevate est sélectionnée automatiquement :
Et l'upgrade commence :
Après quelques minutes, la mise à niveau est terminée :
On peut vérifier les paquets Alma Linux 8 restants avec la commande suivante :
Chez moi j'ai ceci :
On pourra supprimer le dépôt ELevate qui ne sert plus ainsi que l'utilitaire leapp :
On termine avec un petit :
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.
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. (Oracle le permet également mais n'est pas un clone 1 pour 1 et se démarque notamment avec son kernel UEK et ses dépôts spécifiques)
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, systèmes de fichiers distribués ou openjdk.
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.
A noter que les préparatifs à cette mise à niveau et le téléchargement se font serveur en ligne. Cependant, la migration se fait au reboot. Cela permet notamment de n'avoir aucun service système en fonctionnement, tel qu'un moteur de base de données, ou des services de serveur de fichiers.
Prérequis
Avant d'effectuer la mise à niveau, s'assurer de la compatibilité du métériel, notamment sur le CPU qui 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é soit 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 :
Et l'upgrade commence :
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.