Script de conversion de RHEL 7 à CentOS 7
Nous avons reçu des demandes d'assistance pour la conversion de systèmes fonctionnant sous RHEL 7 vers CentOS 7. Les raisons pour lesquelles les organisations souhaitent effectuer cette transition sont diverses, allant du désir d'uniformiser leur parc de serveurs aux changements de licences, en passant par les futurs chemins de migration ou d'autres facteurs.
CentOS est une version libre et communautaire de RHEL, ce qui en fait une excellente alternative à la version sous licence de RHEL pour ceux qui n'ont pas besoin d'un support officiel. Bien que le changement de référentiel puisse sembler une tâche simple, il s'agit en fait d'un processus quelque peu complexe. C'est pourquoi nous avons créé un script pour effectuer automatiquement la conversion.
Cet article présente en détail le script de conversion et le processus de migration de RHEL 7 vers CentOS 7. Il convient toutefois de noter que CentOS 7 atteindra son stade de fin de vie en juin 2024, de sorte que le support du fournisseur prendra fin à ce moment-là et que les organisations devront acheter un support étendu pour continuer à utiliser cette distribution en toute sécurité.
Passons maintenant aux étapes de la migration...
Que fait ce script ?
Avant d'exécuter ce script, il convient de comprendre ce qu'il fait. Ce script est écrit en Python et effectue les neuf opérations suivantes :
1. Vérifier si la conversion a déjà été effectuée
Ce script est conçu pour être idempotent, ce qui signifie qu'il peut être exécuté plusieurs fois sans aucun risque. Le statut de chaque étape est stocké dans un fichier spécial, de sorte que le script n'exécutera jamais à nouveau une étape précédemment terminée. Si toutes les étapes ont été effectuées, le script renverra le message "Le système a déjà migré vers CentOS 7" et sortira.
2. Vérifier si le script s'exécute avec les privilèges de l'administrateur (root)
La plupart des commandes exécutées par le script nécessitent les privilèges de l'utilisateur root, ce qui est vérifié au tout début.
3. Vérifier si le système actuel est RHEL 7
Le script vérifie que le système installé est RHEL 7. Chaque système d'exploitation ayant ses propres caractéristiques, toute tentative d'exécution du script sur un système non pris en charge peut entraîner des résultats inattendus.
4. Supprimer les paquets spécifiques à RHEL
Cette étape supprime les paquets spécifiques à RHEL, tels que les logos et les fichiers de configuration contenant des informations sur la version et les dépôts. Ces paquets sont principalement responsables de l'image de marque de la distribution.
5. Installer les paquets spécifiques à CentOS
Après avoir supprimé les paquets spécifiques à RHEL, ils sont remplacés par les paquets correspondants de CentOS. À l'avenir, les dépôts CentOS seront utilisés pour installer et mettre à jour les paquets.
6. Mise à jour des paquets de distribution
Une mise à jour régulière de tous les paquets système vers les dernières versions disponibles dans les référentiels CentOS est effectuée.
7. Synchroniser les paquets de distribution
L'étape supplémentaire consistant à synchroniser les paquets avec les dernières versions disponibles dans les dépôts CentOS est nécessaire dans les cas où un paquet sous CentOS a une version inférieure à la version RHEL équivalente. Bien que ce scénario soit rare, il doit tout de même être pris en compte car il peut se produire.
8. Effectuer quelques opérations spécifiques à l'EFI et au Secure Boot
Cette étape est cruciale pour la conversion des systèmes fonctionnant en mode UEFI (et non BIOS). De nombreuses solutions et articles ne fournissent pas d'informations sur les étapes requises pour gérer de tels systèmes, mais négliger cette étape peut entraîner un système d'exploitation non amorçable après la conversion. RHEL et CentOS utilisent des chemins différents pour les chargeurs de démarrage Shim et Grub2 - /boot/efi/EFI/redhat et /boot/efi/EFI/centos respectivement.
Cette différence entraîne deux problèmes. Premièrement, après la conversion, le chargeur de démarrage Grub2 tentera de localiser sa configuration dans le nouveau chemin, même s'il se trouve toujours dans le répertoire /boot/efi/EFI/redhat. Le deuxième problème concerne les entrées de démarrage dans le microprogramme UEFI. Une entrée RHEL continuera à pointer vers le chargeur de démarrage dans /boot/efi/EFI/redhat, qui n'est plus accessible par ce chemin.
La plupart des microprogrammes UEFI mettent en œuvre un mode de repli, dans lequel le chargeur de démarrage peut encore être détecté et lancé. Toutefois, la mise en œuvre de ce mode est facultative et tous les matériels ne le prennent pas en charge. Par conséquent, le système ne pourra pas démarrer après la migration. Ces deux problèmes sont automatiquement résolus dans cette étape.
En outre, à cette étape, le script s'assure que les chargeurs d'amorçage Shim et Grub2 ainsi que le noyau sont installés à partir du dépôt CentOS. Si l'un de ces paquets provient encore de RHEL, le système ne pourra pas démarrer en mode Secure Boot. Ces paquets seront détectés et réinstallés à partir des dépôts CentOS.
9. Définir l'enregistrement GRUB par défaut
En général, les systèmes RHEL disposent de plusieurs noyaux récents installés. C'est pourquoi le script fait du noyau CentOS le noyau par défaut pour l'étape de démarrage suivante dans la dernière étape. Cette étape est également requise pour les systèmes fonctionnant en mode Secure Boot.
De RHEL 7 à CentOS 7 : Processus étape par étape
1. Créer une sauvegarde du système
Avant de commencer le processus de migration, nous vous recommandons d'effectuer une sauvegarde complète de votre système RHEL 7.
2. Télécharger le script
Le script Python pour migrer RHEL 7 vers CentOS 7 est disponible sur GitHub :
https://github.com/cloudlinux/rhel2centos
Vous pouvez exécuter cette commande pour télécharger le script sur votre ordinateur.
$ curl -O https://raw.githubusercontent.com/cloudlinux/rhel2centos/main/migrate_7.py
3. Exécuter le script
Une fois le fichier téléchargé, exécutez le script à l'aide de la commande Python.
sudo python migrate_7.py
Sortie :
Le système est migré vers CentOS 7.
4. Vérifier la migration
Pour vérifier si la migration a réussi, exécutez la commande suivante pour vérifier le fichier de validation.
$ cat /etc/redhat-release
Sortie :
CentOS Linux version 7.9.2009 (Core)
Vérifier si le système démarre le noyau CentOS par défaut.
sudo grubby -info DEFAULT | grep CentOS
Sortie :
title=CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (Core)
Note : Les numéros de version peuvent varier au fur et à mesure de la publication de nouvelles mises à jour.
RHEL 7 vs. CentOS
RHEL 7 est une distribution commerciale développée par Red Hat, une importante société de logiciels d'entreprise, tandis que CentOS 7 est une distribution communautaire créée à partir du code source de Red Hat Enterprise Linux (RHEL).
Alors que RHEL 7 est spécifiquement conçu pour répondre aux besoins des environnements d'entreprise qui requièrent une sécurité, une stabilité et un support solides, CentOS 7 est populaire parmi les utilisateurs individuels et les petites organisations qui recherchent une alternative libre et gratuite à RHEL.
RHEL 7 et CentOS 7 sont tous deux considérés comme ayant un bon niveau de sécurité. Toutefois, grâce à un support de niveau entreprise et à l'accès à des outils de sécurité propriétaires, RHEL 7 a un léger avantage sur CentOS. C'est pourquoi RHEL 7 s'impose comme une option supérieure pour les entreprises qui ont besoin de niveaux de sécurité élevés.
D'autre part, CentOS 7 est la solution à retenir si vous recherchez un substitut libre et open-source avec une large sélection de paquets. Quelle que soit la version choisie, RHEL 7 et CentOS 7 sont tous deux des systèmes d'exploitation extrêmement sûrs et fiables qui peuvent satisfaire les exigences de la majorité des utilisateurs.
Il est également important de noter que le support de maintenance pour RHEL 7 se terminera le 30 juin 2024 et que CentOS 7 atteindra également sa fin de vie à cette date. Comme il reste un peu plus d'un an, il est recommandé aux utilisateurs et aux administrateurs de de commencer à planifier leur migration.
Si vous n'êtes pas sûr de pouvoir migrer vers distros alternativesvous pouvez opter pour un support étendu de l'assistance EOL de TuxCare pour CentOS 7de TuxCare, qui offre un support étendu de quatre ans sur le cycle de vie.
Le bilan
En résumé, passer de RHEL 7 à CentOS 7 peut être une tâche difficile. Cependant, il peut être réalisé facilement et sans avoir d'impact négatif sur le système, à condition qu'il soit effectué avec une planification et une exécution minutieuses.
Nous espérons que ce guide vous aidera à convertir votre système RHEL 7 en CentOS 7 !