News - Logiciels Libres

Migrer CentOS Stream 8 vers Alma Linux 8

Migrer CentOS Stream 8 vers Alma Linux 8
Bonjour,

Comme vous le savez CentOS Stream 8 n'est plus supporté depuis le 31 mai 2024.

Il n'est pas possible officiellement de passer de CentOS Stream 8 à CentOS Stream 9 (montée en version)
Nous avons fait un petit tuto, à utiliser à vos risques et périls : https://www.linuxtricks.fr/news/10-logiciels-libres/527-astuce-upgrade-centos-stream-8-to-centos-stream-9/
Aussi, il n'est pas possible de migrer CentOS Stream 8 vers RHEL8, ce N'est PAS supporté par Red Hat : https://access.redhat.com/articles/2360841#comment-2013711

CentOS Stream n'est pas une distribution à utiliser en production, je l'ai dit à plusieurs reprises. Elle sert pour le développement de la même version de RHEL, et c'est sur cette base que les dérivées s'appuient. C'est dans cette distribution que sont incorporées les nouveautés des versions mineures de RHEL.
Passé la période de Full Support de RHEL, cette distribution n'est plus maintenue, car il n'y a plus de "nouveautés" dans RHEL, uniquement des correctifs de sécurité et de bugs.

Cependant, si vous souhaitez continuer à utiliser une version "maintenue" de CentOS Stream 8, fournie par une communauté, avec un support équivalent à RHEL (environ 10 ans), sans dépenser un sou, le projet Alma Linux propose la conversion de CentOS Stream 8 vers Alma Linux 8.
Ainsi, il n'y a pas de montée en version des composants majeurs de la distribution. Vous pourrez continuer à utiliser votre système sereinement jusqu'en 2029. Vous pourrez, si vous le souhaitez, migrer vers Alma Linux 9 plus tard grâce à l'outil ELevate.

Cette possibilité de migration de CentOS Stream est offerte par l'outil Alma Deploy du projet Alma Linux que j'aprécie, et auquel je contribue.

Nous allons voir comment procéder.

Dans cette actu, je vous ai fait la démo (qui est donc validée) sur un serveur CentOS Stream 8, avec le serveur Web Apache httpd, une base MariaDB et quelques modules PHP.

Toutes les commandes seront réalisées en root.
Si vous êtes sur une machine virtuelle, faites un snapshot "au cas où".
Dans tous les cas, prévoyez de sauvegarder les données et fichiers importants de la machine.

Veillez à activer les dépôts d'archive de CentOS (Vault) comme décrit dans cet article : https://www.linuxtricks.fr/news/10-logiciels-libres/554-centos-stream-8-activer-les-depots-d-archives-vault/

Ces dépôts sont nécessaires pour mettre à jour complètement le système (si ce n'était pas le cas) :
Code BASH :
dnf upgrade -y


Redémarrez le système.

Ensuite, récupérez ensuite le script Alma Deploy :
Code BASH :
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh


Ensuite, exécutez le script Alma Deploy :
Code BASH :
bash almalinux-deploy.sh -d

L'option -d permet de demander à l'outil d'effectuer d'éventuels downgrades de paquets. C'est un cas étudié dans l'outil Alma Deploy vu qu'on part d'une base CentOS Stream.

Les vérifications se font et la conversion commence :
Code TEXT :
Check root privileges                                                 OK
Check centos-8.x86_64 is supported                                    OK
Download RPM-GPG-KEY-AlmaLinux                                        OK
Import RPM-GPG-KEY-AlmaLinux to RPM DB                                OK
Download almalinux-release package                                    OK
Verify almalinux-release package                                      OK
Your OS is supported                                                  OK
warning: /etc/yum.repos.d/CentOS-Stream-Extras.repo saved as /etc/yum.repos.d/CentOS-Stream-Extras.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Stream-Extras-common.repo saved as /etc/yum.repos.d/CentOS-Stream-Extras-common.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Stream-BaseOS.repo saved as /etc/yum.repos.d/CentOS-Stream-BaseOS.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Stream-AppStream.repo saved as /etc/yum.repos.d/CentOS-Stream-AppStream.repo.rpmsave
Remove OS specific rpm packages                                       OK
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
almalinux-release-8.10-1.el8          ########################################
Install almalinux-release package                                     OK
Remove centos-logos centos-logos-httpd packages                       OK
Install almalinux-logos almalinux-logos-httpd packages                OK
Backup of alternatives is done                                        OK
Last metadata expiration check: 0:00:07 ago on Tue Sep 10 11:18:12 2024.
...
Total download size: 906 M
Downloading Packages:
(1/696): info-6.5-7.el8.x86_64.rpm              468 kB/s | 197 kB     00:00    
(2/696): gmp-6.1.2-11.el8.x86_64.rpm            697 kB/s | 317 kB     00:00    
(3/696): python3-requests-2.20.0-3.el8_8.noarch 1.3 MB/s | 123 kB     00:00    
(4/696): setup-2.12.2-9.el8.noarch.rpm          1.5 MB/s | 180 kB     00:00    
(5/696): conmon-2.1.10-1.module_el8.10.0+3876+e 779 kB/s |  57 kB     00:00    
(6/696): container-selinux-2.229.0-2.module_el8 887 kB/s |  70 kB     00:00   


Une fois terminé, le script indique que tout s'est bien déroulé :
Code TEXT :
 
Complete!
Run dnf distro-sync -y                                                OK
Restoring of alternatives is done                                     OK
Generating grub configuration file ...
File descriptor 5 (/var/log/almalinux-deploy.debug.log) leaked on vgs invocation. Parent PID 92098: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/almalinux-deploy.debug.log) leaked on vgs invocation. Parent PID 92098: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/almalinux-deploy.debug.log) leaked on vgs invocation. Parent PID 94452: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/almalinux-deploy.debug.log) leaked on vgs invocation. Parent PID 94452: /usr/sbin/grub2-probe
Adding boot menu entry for EFI firmware configuration
done
All Secure Boot related packages which were not released by AlmaLinux are reinstalledOK
BootCurrent: 0008
Timeout: 3 seconds
BootOrder: 0009,0008,0002,0001,0003,0004,0005,0006,0000,0007
Boot0000* UiApp
Boot0001* UEFI QEMU DVD-ROM QM00003 
Boot0002* UEFI QEMU QEMU HARDDISK 
Boot0003* UEFI PXEv4 (MAC:BC24113FB83B)
Boot0004* UEFI PXEv6 (MAC:BC24113FB83B)
Boot0005* UEFI HTTPv4 (MAC:BC24113FB83B)
Boot0006* UEFI HTTPv6 (MAC:BC24113FB83B)
Boot0007* EFI Internal Shell
Boot0008* CentOS Stream
Boot0009* AlmaLinux
The new EFI boot record for AlmaLinux is added                        OK
Migration to AlmaLinux is completed


Il ne reste qu'à redémarrer :
Code BASH :
systemctl reboot


Au redémarrage, on peut vérifier qu'on est bien sur Alma Linux :
Code BASH :
cat /etc/redhat-release 


Qui renvoie :
Code TEXT :
AlmaLinux release 8.10 (Cerulean Leopard)


Et voilà !