Retour

2025/04/11

8. Passer de CentOS à Oracle Linux

En décembre 2020, le blog officiel de CentOS a annoncé que le développement de CentOS prendrait fin et qu’il serait transformé en CentOS Stream. L’annonce de la fin de CentOS, qui avait auparavant une présence écrasante en tant que distribution compatible avec RHEL (clone de RHEL), a été une grande surprise.

Près de trois ans se sont écoulés depuis l’annonce de la fin de CentOS en 2020, et diverses alternatives à CentOS sont apparues. Dans cet article, nous expliquerons la situation actuelle de CentOS et de l’après-CentOS, ainsi que la manière de passer à Oracle Linux, qui est une destination de migration prometteuse.

Fin de CentOS et CentOS Stream

Pour comprendre la situation actuelle de CentOS, nous expliquerons un aperçu de la fin de CentOS et du nouveau CentOS Stream.

Annonce de la fin de vie de CentOS

L’annonce de la fin de CentOS a été publiée sur le blog officiel de CentOS, “Le projet CentOS se concentre sur CentOS Stream.”

Le contenu de ce blog peut être résumé comme suit :

  • CentOS 8 prendra fin le 31 décembre 2021
  • CentOS 7 sera pris en charge jusqu’au 30 juin 2024 comme d’habitude.
  • CentOS passera à CentOS Stream à l’avenir
  • CentOS Stream est la branche amont (développement) de RHEL. Il est positionné différemment des reconstructions traditionnelles.
  • Les utilisateurs de CentOS 8 sont encouragés à migrer vers CentOS Stream, qui présente moins de différences, ou vers RHEL s’ils sont préoccupés par son utilisation dans un environnement de production.

De plus, du point de vue de l’utilisateur, cela peut être exprimé comme suit :

  • Le support pour CentOS prendra fin bientôt, il faut donc envisager une migration immédiatement.
  • À ce jour (septembre 2023), le support pour CentOS 8 a pris fin, et le support pour CentOS 7 prendra fin en juin 2024. Après la fin du support, les packages de mise à jour ne seront plus fournis et le dépôt Yum ne sera plus disponible.
  • Aucun package de mise à jour n’est fourni, ce qui augmente les risques de sécurité
  • CentOS Stream n’est pas une reconstruction de RHEL comme CentOS, mais est positionné comme une version de développement. Par conséquent, il y a des problèmes à l’utiliser dans un environnement de production, au minimum.

Différences entre CentOS et CentOS Stream

CentOS était une distribution Linux compatible avec RHEL, également connue sous le nom de clone de RHEL. Par conséquent, elle est compatible avec RHEL et presque identique au niveau du code source. D’ailleurs, j’ai présenté le diagramme suivant dans l’article précédent, “Utilisez-vous Oracle Linux ? (Partie 1).”

D’autre part, CentOS Stream est une version Nightly de RHEL qui est publiée sur une base de mise à jour continue. Une version Nightly est une version générée en utilisant le dernier code source d’un projet de développement et est différente de la version officielle.

C’est un peu difficile à comprendre car c’est différent de ce que nous avions jusqu’à présent, mais le diagramme suivant publié par le projet CentOS devrait aider. Par exemple, RHEL 8 (≓ CentOS 8) a été créé en se séparant de Fedora 28. Les versions 8.2 et 8.3 ont ensuite été publiées dans cet ordre, et des errata ont été créés pour chacune. Selon les paramètres du système d’exploitation, il est également possible de passer de 8.3 à la dernière version 8.8.

Source : CentOS Stream est une livraison continue sous licence CC BY-SA 4.0

CentOS Stream est un système de mise à jour continue, donc il n’y a pas de versions mineures comme 8.2 ou 8.3. Il a simplement la date de sortie. Si vous regardez l’image ISO publiée sur le site miroir, elle porte une date comme 20230825. De plus, sur le site miroir, 20230825 et latest sont identiques, et le contenu de latest est toujours mis à jour.

De plus, au niveau des packages individuels, il n’est pas garanti que CentOS Stream et RHEL soient identiques. Étant donné que les modifications sont apportées à CentOS Stream en premier, en comparant les dernières versions, CentOS Stream est plus récent et peut être considéré comme une version qui n’a pas encore été testée en production.

J’espère que vous comprenez que bien que CentOS et CentOS Stream soient fonctionnellement similaires, leurs positions sont assez différentes. C’est pourquoi cela a causé un tel émoi dans le monde entier. Les différences entre CentOS et CentOS Stream sont décrites en détail dans le blog des ingénieurs Red Hat : “La relation entre Fedora/CentOS Stream/CentOS/RHEL”. Jetez-y un œil si cela vous intéresse.

Période de support pour chaque distribution Linux

Cet article présente la période de support pour les distributions Linux basées sur RHEL. La seule version de CentOS actuellement prise en charge est CentOS 7, qui sera supportée jusqu’au 30 juin 2024. Il n’existe pas de CentOS 9. Par conséquent, si vous utilisez actuellement CentOS, vous devrez migrer vers une autre distribution Linux.

VersionFin du support(*1)
CentOS 72024/06/30
CentOS 82021/12/31
CentOS Stream 82024/05/31
CentOS Stream 9Non décidé (prévu pour être le même que RHEL9)
Red Hat Enterprise Linux 72024/06/30
Red Hat Enterprise Linux 82029/05/31
Red Hat Enterprise Linux 92032/05/31
Oracle Linux 72024/12
Oracle Linux 82029/07
Oracle Linux 92032/06

*1 : La fin du support pour Oracle Linux est la fin du support Premier. Un support étendu et un support de maintenance seront fournis pour une période plus longue.

Options de migration de CentOS

Considérons les distributions Linux qui sont candidates pour la migration depuis CentOS. En tenant compte de la facilité de migration, la série RHEL est la meilleure, et les principales options sont les suivantes :

  • CentOS Stream
  • Red Hat Enterprise Linux
  • Oracle Linux
  • AlmaLinux
  • Rocky Linux
  • MIRACLE LINUX
  • Amazon Linux

AlmaLinux et Rocky Linux sont des distributions Linux nées en réaction à la fin de CentOS. Les deux sont sponsorisées par de grandes entreprises et sont également proposées sur le cloud public.

Le choix dépend de facteurs tels que votre objectif et votre budget, il est donc difficile de dire quelle option est inconditionnellement meilleure. Le tableau suivant les compare du point de vue de l’utilisation en entreprise. Pour une utilisation en entreprise, les facteurs importants incluent la durée de la période de support, la disponibilité ou non d’un support payant, la disponibilité ou non de matériel pris en charge, la prise en charge des packages commerciaux, et le coût.

DistributionLicence/AbonnementSupport payantMéthode de migrationInconvénients et points négatifs
CentOS StreamNon requisAucunRemplacement d’un dépôtIl semble être très stable, mais il faut être prudent. Il n’est pas compatible avec le RHEL traditionnel, donc il n’y a pas de matériel pris en charge et les packages commerciaux ne sont pas supportés. Pouvez-vous convaincre votre patron ou vos clients ?
Red Hat Enterprise LinuxNécessairePossibleOutils de migration disponiblesLeader de l’industrie, mais nécessite un abonnement et un accord d’entreprise Red Hat
Oracle LinuxNon requis, mais certaines fonctionnalités ne sont disponibles que pour les utilisateurs avec support payantPossibleOutils de migration disponiblesIl a un long historique et est utilisé pour des applications critiques telles qu’Exadata. Il n’est pas bien connu parmi les utilisateurs de produits Oracle.
AlmaLinux/Rocky LinuxNon requisSupport payant disponible (y compris support tiers)Outils de migration disponiblesC’est une nouvelle distribution, il faut donc la surveiller.
Amazon LinuxNon requisPossibleAucun outil fourni par le fournisseurIl peut être utilisé sur site et a une haute compatibilité avec AWS. Étant basé sur Fedora, la compatibilité n’est pas élevée et la période de support est courte, environ 5 ans.
MIRACLE LINUXNon requisPossibleOutils de migration disponiblesBien qu’il ait un long historique, il n’est pas bien connu parmi les fournisseurs locaux.

Passer de CentOS à Oracle Linux à l’aide d’outils de migration

Oracle Linux fournit un script centos2ol.sh qui permet de passer de CentOS à Oracle Linux sur place. Cette fois, nous utiliserons ce script pour passer de CentOS 8 à Oracle Linux 8. La procédure pour passer à CentOS 7 est presque la même.

Oracle a publié plusieurs documents, nous allons donc approfondir certains d’entre eux tout en mettant en avant les points principaux.

Pour exécuter le script de migration :

Les étapes pour exécuter le script de migration sont les suivantes. Les étapes préparatoires 1 à 3 nécessitent plusieurs commandes. Cependant, les étapes de migration 4 et 5 peuvent être effectuées avec un minimum de commandes.

  1. Vérifier les restrictions
  2. Sauvegarde du système (omise dans le texte)
  3. Préparation de la source CentOS
  4. Exécution du script de migration
  5. Vérification après migration

Vérifier les restrictions

Les limitations de l’outil de migration sont les suivantes. Pour l’instant, vous devez simplement être conscient de ces limitations, et nous les vérifierons dans la section suivante, “Préparation de la source CentOS.”

  1. La source est CentOS 6, 7, 8 ou Rocky Linux 8, 9
  2. Accès aux dépôts Yum de CentOS et Oracle Linux, soit directement, soit via un proxy
  3. L’instance n’est pas enregistrée avec un outil de gestion de packages tiers comme Spacewalk.
  4. Si vous avez installé des packages provenant de sources autres que le dépôt officiel CentOS, ils peuvent être compatibles, mais nous ne garantissons pas qu’ils fonctionneront. Certains logiciels /etc/oracle-release peuvent poser des problèmes s’ils sont installés.
  5. Si certains modules du noyau sont installés, comme des produits antivirus commerciaux ou des pilotes matériels, ils peuvent ne pas fonctionner après le passage.
  6. Le script de migration n’active que les dépôts de base, tels que base, updates, et BaseOS. Si vous avez installé des packages provenant d’autres dépôts, vous devrez peut-être activer des dépôts supplémentaires.
  7. /var/cache doit avoir au moins 5 Go d’espace libre

Préparation de la source CentOS

Ici, nous nous assurerons que nous ne violons aucune restriction du script.

Veuillez noter que les étapes préparatoires nécessitent des privilèges d’administrateur, vous devez donc soit mettre sudo avant la commande, soit utiliser su pour l’exécuter en tant qu’utilisateur root. J’ai omis sudo pour souligner la simplicité de l’apparence. De plus, CentOS 8 recommande dnf au lieu de yum, mais j’ai continué avec yum car il est compatible.

1. Vérifier la version de CentOS

Connectez-vous à la source et vérifiez la version de CentOS. Si c’est 8 comme indiqué ci-dessous, il n’y a pas de problème.

# cat /etc/centos-release
CentOS Linux release 8.3.2011

2. Vérifier la connexion au dépôt Yum de CentOS

Vérifiez si vous pouvez vous connecter au dépôt Yum de CentOS. CentOS 8 n’a plus de dépôt sur le site miroir, donc si vous ne pouvez pas vous connecter, vous obtiendrez l’erreur suivante :

# yum check-update
CentOS Linux 8 - AppStream                       51  B/s |  38  B     00:00
Erreur : Échec du téléchargement des métadonnées pour le dépôt 'appstream' : Impossible de préparer la liste de miroirs interne : Aucune URL dans la liste de miroirs

En cas d’erreur, modifiez le dépôt que vous pointez en exécutant la commande suivante :

# sed -i -e 's/^mirrorlist/#mirrorlist/g' -e 's/^#baseurl=http:\/\/mirror/baseurl=http:\/\/vault/g' /etc/yum.repos.d/CentOS-*repo

Si le dépôt est disponible, les métadonnées du dépôt seront téléchargées et les packages pouvant être mis à jour seront affichés comme ci-dessous.

# yum check-update
CentOS Linux 8 - AppStream                       16 MB/s | 8.4 MB     00:00
CentOS Linux 8 - BaseOS                         9.2 MB/s | 4.6 MB     00:00
CentOS Linux 8 - Extras                          46 kB/s |  10 kB     00:00

NetworkManager.x86_64         1:1.32.10-4.el8       baseos
NetworkManager-libnm.x86_64   1:1.32.10-4.el8       baseos

3. Vérifier qu’il n’y a pas de packages problématiques

Vérifiez les noyaux et les packages installés en dehors des dépôts de base (anaconda, base, baseos, updates, AppStream, etc.). Les noyaux sont particulièrement problématiques, alors supprimez le noyau centosplus s’il est présent.

Affiche le noyau installé. Le nom du dépôt à partir duquel il a été installé est affiché à l’extrême droite. Cet exemple est correct.

# yum list installed kernel
kernel.x86_64                 4.18.0-240.el8        @anaconda

Pour vérifier non seulement le noyau, mais aussi les packages installés à partir d’autres dépôts que le dépôt de base, utilisez la commande suivante. S’il y a des packages installés à partir de dépôts tiers comme EPEL, les packages concernés seront affichés. Cependant, les packages de l’espace utilisateur posent rarement problème.

# rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep -v "CentOS"

4. Vérifier le dépôt de base

Vérifiez que les dépôts de base sont activés. S’ils sont désactivés, activez-les.

# yum repolist
repo id                nom du dépôt
appstream              CentOS Linux 8 - AppStream
baseos                 CentOS Linux 8 - BaseOS
extras                 CentOS Linux 8 - Extras

Si certains dépôts sont désactivés, activez-les.

# dnf config-manager --enable BaseOS AppStream extras

De plus, si le message suivant commençant par “Ce système” est affiché au début, le système est enregistré avec Spacewalk, etc. Le script de migration ne peut pas être utilisé, donc soit retirez-le de la gestion, soit abandonnez l’utilisation du script.

# yum repolist
...
Ce système reçoit des mises à jour du serveur Red Hat Satellite ou Spacewalk
repo id                       nom du dépôt

5. Mise à jour des packages

Mettez à jour les packages vers la dernière version. Bien que la mise à jour vers la dernière version ne soit pas requise, elle sera mise à jour lorsque vous exécuterez le script de migration, donc cela revient au même.

# yum update -y

6. Vérifier l’espace disque libre

Vérifiez que /var/cache a au moins 5 Go d’espace libre.

# df -h /var/cache
Système de fichiers                Taille  Utilisé  Disponible Utilisation% Point de montage
/dev/mapper/cl_centos8-root    47G  1.7G   46G    4% /

7. Désactiver les mises à jour automatiques des packages

Si les mises à jour automatiques des packages sont activées pendant l’exécution du script de migration, elles ne fonctionneront pas correctement, elles doivent donc être désactivées. CentOS a deux types de mises à jour automatiques des packages :

  • yum-cron (CentOS 7) ou dnf-automatic (CentOS 8)
  • Packagekit intégré à l’environnement de bureau

Si vous n’avez pas installé l’environnement de bureau, vérifiez yum-cron ou dnf-automatic. Si vous avez l’environnement de bureau installé, vous devriez vérifier les deux.

7-1. Désactiver dnf-automatic

Vérifiez si dnf-automatic est installé. Si rien n’est affiché comme ci-dessous, passez à “7-2. Désactiver Packagekit”.

# rpm -qa | grep dnf-automatic
★Rien n'est affiché s'il n'est pas installé

Lorsqu’il est installé, vérifiez les paramètres de la minuterie. Dans l’exemple suivant, les téléchargements automatiques (dnf-automatic-download.timer) sont activés.

# systemctl list-unit-files --type=timer | grep dnf-auto
dnf-automatic-download.timer   activé
dnf-automatic-install.timer    désactivé
dnf-automatic-notifyonly.timer désactivé
dnf-automatic.timer            désactivé

Si l’un d’entre eux est activé, désactivez-les tous.

# systemctl disable dnf-automatic-download.timer --now
7-2. Désactiver Packagekit

Si vous avez un environnement graphique installé, vérifiez Packagekit.

# systemctl status packagekit

Lorsqu’il indique “actif (en cours d’exécution)” comme marqué par ★, il est en cours d’exécution. Si le service Packagekit lui-même n’existe pas, il dira “L’unité packagekit.service n’a pas pu être trouvée.” Cela n’est pas pertinent dans ce cas.

● packagekit.service - Démon PackageKit
   Loaded: chargé (/usr/lib/systemd/system/packagekit.service; statique; préréglage du fournisseur : désactivé)
   Active: ★actif (en cours d'exécution)★ depuis mar 2023-08-15 09:31:27 GMT; 59s ago
 Main PID: 21960 (packagekitd)
    Tasks: 3
   CGroup: /system.slice/packagekit.service
           └─21960 /usr/libexec/packagekitd

15 déc 09:31:26 centos7 systemd[1]: Démarrage du Démon PackageKit...
15 déc 09:31:27 centos7 PackageKit[21960]: démarrage du démon
15 déc 09:31:27 centos7 systemd[1]: Démon PackageKit démarré.

Lorsque Packagekit est en cours d’exécution, arrêtez le service et désactivez le démarrage automatique.

# systemctl disable packagekit --now

8. Télécharger le script de migration

Téléchargez le script de migration. Si vous avez besoin d’un proxy pour accéder à Internet, spécifiez le serveur proxy dans les options --proxy ou les variables d’environnement https_proxy.

# curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh

Vérifiez les options disponibles.

# bash centos2ol.sh -h
Utilisation : centos2ol.sh [OPTIONS]

OPTIONS
-h
        Afficher cette aide et quitter
-k
        Ne pas installer le noyau UEK et désactiver les dépôts UEK
-r
        Réinstaller tous les RPM CentOS avec les RPM Oracle Linux
        Remarque : Ceci n'est pas nécessaire pour le support
-V
        Vérifier les informations RPM avant et après le passage

Exécution des scripts de migration

Maintenant que tout est prêt, exécutez le script de migration pour passer à Oracle Linux. Le temps nécessaire à l’exécution dépend du nombre de packages installés, de la vitesse de la ligne, et des performances de la machine. Dans l’environnement que j’ai testé, cela a pris environ 10 à 60 minutes.

# bash centos2ol.sh

Si le script s’exécute avec succès, le message suivant est affiché :

Synchronisation réussie.
Mise à jour du chargeur de démarrage GRUB2.
Génération du fichier de configuration grub ...
terminé
Passage au noyau de démarrage par défaut vers l'UEK.
Suppression du cache yum
Passage terminé.
Oracle recommande de redémarrer ce système.

Suivez le message pour redémarrer le système.

# systemctl reboot

Vérification après migration

Après le redémarrage, vérifiez l’état de votre système.

  1. /etc/oracle-release a été ajouté et /etc/centos-release a été supprimé.
$ ls -l /etc/*-release
-rw-r--r--. 1 root root  32  7 août 00:03 /etc/oracle-release
-rw-r--r--. 1 root root 489  7 août 00:03 /etc/os-release
-rw-r--r--. 1 root root  45  7 août 00:03 /etc/redhat-release
lrwxrwxrwx. 1 root root  14  7 août 00:03 /etc/system-release -> oracle-release
  1. Avant la migration, la version était CentOS 8.3, mais maintenant c’est la dernière Oracle Linux 8.8. Si vous migrez à l’aide du script de migration, vous obtiendrez la dernière version.
$ cat /etc/oracle-release
Oracle Linux Server release 8.8
  1. Le noyau par défaut est UEK, pas RHCK. Si vous ne voulez pas utiliser UEK, spécifiez centos2ol.sh -k lors de l’exécution du script comme suit :
$ uname -r
5.4.17-2136.322.6.2.el8uek.x86_64
  1. Vérifiez s’il reste des packages CentOS. Les noyaux suivants sont affichés. Ils ne sont pas utilisés, ils peuvent donc être supprimés.
$ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep CentOS | sort -n
kernel-4.18.0-240.el8   CentOS
kernel-core-4.18.0-240.el8      CentOS
kernel-modules-4.18.0-240.el8   CentOS
  1. Allons plus loin et affichons la liste des packages liés au noyau. Nous pouvons voir que l’ancien noyau CentOS et les derniers RHCK et UEK pour Oracle Linux sont installés.
# rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep kernel- | sort -n
kernel-4.18.0-240.el8   CentOS
kernel-4.18.0-477.21.1.el8_8    Oracle America
kernel-core-4.18.0-240.el8      CentOS
kernel-core-4.18.0-477.21.1.el8_8       Oracle America
kernel-modules-4.18.0-240.el8   CentOS
kernel-modules-4.18.0-477.21.1.el8_8    Oracle America
kernel-tools-4.18.0-477.21.1.el8_8      Oracle America
kernel-tools-libs-4.18.0-477.21.1.el8_8 Oracle America
kernel-uek-5.4.17-2136.322.6.2.el8uek   Oracle America
  1. Vérifiez les dépôts activés, vous verrez qu’ils ont été remplacés par ceux d’Oracle Linux.
yum repolist
repo id           nom du dépôt
ol8_UEKR6         Dernière version du noyau d'entreprise incassable Release 6 pour Oracle Linux 8 (x86_64)
ol8_appstream     Oracle Linux 8 Application Stream (x86_64)
ol8_baseos_latest Oracle Linux 8 BaseOS Dernier (x86_64)

Conclusion

En utilisant le script de migration, vous pouvez voir qu’il est très facile de passer de CentOS à Oracle Linux. La partie la plus ennuyeuse est le travail de vérification préalable. De plus, bien que cela n’ait pas été expliqué dans le texte principal, assurez-vous de faire une sauvegarde avant de l’exécuter.

Résumé

  • Le support de CentOS prend fin bientôt, il faut donc migrer rapidement.
  • Oracle Linux est une cible de migration probable
  • Le script de migration centos2ol.sh facilite le passage de CentOS à Oracle Linux.
  • Le temps de migration est d’environ 10 à 60 minutes par serveur. Cela dépend du nombre de packages installés, des performances du serveur, et de la vitesse de la ligne.
  • Le script a certaines limitations, comme la possibilité de se connecter aux dépôts Internet.

L’industrie des clones RHEL est en ébullition depuis la fin de 2020, mais en 2023, il y a un autre tumulte. Red Hat a précédemment publié le code source de RHEL, mais a annoncé qu’il ne serait plus rendu public à l’avenir (voir le lien ci-dessous). En réponse, certains fournisseurs ont annoncé des contre-mesures. Oracle développe non seulement Oracle Linux depuis de nombreuses années, mais aussi Solaris, ce qui peut vous rassurer dans ce domaine.

Publickey ! : “Oracle, SUSE, et CIQ, le principal sponsor de Rocky Linux, créent l’ ‘Open Enterprise Linux Association’ pour publier un Linux compatible RHEL avec des corrections de bogues”

Publickey ! : “Red Hat critique les fournisseurs de systèmes d’exploitation clones, disant ‘si vous reconstruisez simplement le code sans ajouter de valeur, c’est une menace pour l’open source'”