Mettre à jour CentOS 7 vers 8

Mettre à jour CentOS 7 vers 8
Photo by Markus Winkler / Unsplash

Apparemment Red Hat supporte la montée de version entre 2 versions majeures (je redébarque après qqu temps passé sans utiliser de RHEL). Confer la doc. Un nouvel outil a été développé pour effectuer la procédure de mise à jour, Leapp. Cet outil se veut être un framework générique de mise à niveau d'OS Linux. Bon cela à tout de même l'air d'être bien collé aux systèmes de paquets RedHat RPM. Je l'ai pas trouvé sur ma Manjaro donc bon ! Je vous mets le petit laïus de présentation de l'outil:

Leapp project aims to enable users to modernize their existing workloads without disrupting them in three different ways: upgrading them in place, migrating them to a different place or containerize them. Currently, the in-place upgrade functionality is being worked on only.

Evitez de faire une mise à jour en live de vos paquets uniquement en switchant de dépôts tels que parfois préconiser dans les résultats de recherches. Les changements entre 2 versions majeurs de distro sont importants, une simple mise à jour de paquets est trop légère comme procédure. Il faudrait plutôt prendre les releases notes de version de distro visée, genre la 8 au hasard, vérifier les changements majeurs et trucs obsolète par rapport à notre installation. C'est un peu plus fastidieux.

C'est ici que Leapp entre en jeu et permet d'écrire, en python, un chemin de mise à jour à suivre pour s'assurer que tout ira bien (ils appellent ça des "actors"). Donc, on télécharge et installe Leapp puis on installe de même le chemin de mise à jour pour notre distro et on y va. Plus haut, la documentation Red Hat fournit le chemin pour une distro RHEL qui ne correspondra pas à votre CentOS, Almalinux, RockyLinux, etc. Il faut donc trouver ce chemin pour notre CentOS !

Certaines docs ne sont pas à jour, pas plus que les résultats de recherche, on tombe sur des procédures qui n'ont plus cours avec des fautes dedans qui plus est. Les docs faisant référence au dépôt copr @leap/leap-devel, sont obsolète. Le bon dépôt serait plutôt @oagm/leapp concernant RedHat. Pour CentOS, j'ai choisis d'utiliser la version d'Almalinux de l'outil permettant des switchs de CentOS vers Almalinux ou RockyLinux ou juste d'une version majeure à une autre. L'outil s'appelle ELevate.

Résumé de la procédure piquée ici :

# Mise à  la dernière version mineure de votre CentOS 7.9
sudo yum update
sudo reboot

# Installation du dépôt RPMs pour récupérer ELevate
sudo yum install http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm

# Installation de Leapp et des data de mise à jour pour CentOS
# il existe un paquet pour alma, rocky, etc Confer l'article original !
sudo yum install -y leapp-upgrade leapp-data-centos

# Check de preupgrade
sudo leapp preupgrade

# Potentiel changement à faire pour ne pas être embêté
echo PermitRootLogin no | sudo tee -a /etc/ssh/sshd_config
sudo sed -i 's@PermitRootLogin yes@PermitRootLogin no@g' /etc/ssh/sshd_config
sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True

# upgrade
sudo leapp upgrade
sudo reboot