Je vais commencer par un peu d’histoire. En 2014, Red Hat a racheté CentOS (Community Entreprise Operating System) et en 2019, c’est IBM qui a racheté Red Hat. Fin 2020, IBM annonce un raccourcissement du support de CentOS 8
qui passe du 31/12/2029 au 31/12/2021. Par contre aucune annonce n’intervient sur la fin de support de CentOS 7, qui est toujours prévu au 31/12/2024.
CentOS est une version communautaire, gratuite et 100% compatible avec RHEL (Red Hat Entreprise Linux).
L’évolution des produits au fil des années entre les distributions Fedora, CentOS Stream, RHEL et CentOS :
CentOS Stream est apparu en 2019 avec l’idée d’être une version de bêta de RHEL. De son coté, CentOS v quand lui disparaître.
L’utilisation des distributions Linux en 2020
La répartition des distributions linux utilisées par les serveurs Linux dans le monde
La fin de support de CentOS concerne 23% des serveurs.
Les possibilités d’action
Suite à la fin du support de CentOS, plusieurs options sont possibles pour notre parc de serveur :
- Migrer vers CentOS Stream (solution gratuite proposée par Red Hat)
- Migrer vers RHEL (solution payante proposée par Red Hat)
- Migrer vers une distribution linux compatible
- Réinstaller vers une distribution linux non compatible
Afin de pouvoir décider des actions à mener sur mon parc de serveurs, je me pose les questions suivantes :
- Quelles sont les caractéristiques nécessaires d’OS ?
- Quels sont les OS disponibles sur le marché ?
- Quels sont les distributions répondant mon besoin ?
Mon cahier des charges
- Système Linux
- Pas de licence payante
- Fonctionnel et optimisé en VM
- Correctif rapide en cas de vulnérabilité
- Support long
- Robuste
- Fiable
- Facile d’administration
- Flexible sur les versions des logiciels
Les candidates
J’ai commencé par lister les distributions standards : Fedora, CentOS Stream, RHEL, Debian, Ubuntu et openSUSE. Puis j’ai cherché des alternatives, j’ai découvert des distributions moins connues : Gentoo Linux,
Calculate Linux, AlmaLinux, Oracle Linux et RockyLinux.
Le choix
J’ai ensuite trié les systèmes d’exploitation candidats en fonction de mon cahier des charges.
En premier, je m’interroge Fedora. Je constate que son cycle de vie est trop court. La montée trop rapide en version des composants de base (PHP, PERL, Python, par exemple). Fedora n’est pas éligible du fait de son instabilité.
En second, je regarde les caractéristiques de CentOS Stream. Elle est en aval de Fedora et en amont du projet RHEL. Elle est considérée comme une Béta de la RHEL. Sa durée de vie est de 5 ans. Pour ces deux derniers
points, CentOS Stream ne correspond pas à mon cahier des charges.
Ensuite, je m’informe sur Gentoo. Après quelques tentatives, je constate que la consommation de ressources est plus importante que ces homologues lors de l’utilisation d’environnement virtualisé (en docker ou podman).
Oracle Linux dispose de son propre dépôt EPEL. Cela cause des petits dysfonctionnements et ne la rend pas compatible à 100%.
OpenSuse est communautaire, elle est soutenu par l’équipe Suse. Cela permet d’avoir une stabilité et pas de coût de licence mais le cycle de vie est court. Par ailleurs, la montée de version (majeure ou mineure)
est complexe, beaucoup de paquets sont réinstallés, des fichiers de configuration changent et ne sont pas situés au même endroit (les habitudes de /etc). Dans le monde de Gentoo, il existe également la distribution
Calculate Linux. Il est peu connu et peu enseigné. Cette distribution n’est pas versionnée et archivée, par conséquent les anciens packages n’existent plus. Par exemple python 2 n’est plus présent.
Cela représente un avantage pour la sécurité à condition que les applications existantes sur le serveur fonctionnent toujours en python 3.
J’examine les propriétés de Debian. Le support est de 5 ans. Nous n’avons pas le choix et la flexibilité souhaité de la version d’un package pour qu’il soit officiellement supporté. Par exemple
sous Debian 10, PHP est fourni officiellement la version 7.3 uniquement et sous Debian 11 c’est PHP 8.0. Si nous voulons une version différente, il faut rajouter un dépôt supplémentaire. Par ailleurs, la système
Debian est différent du système CentOS sur plusieurs points comme le système de package. Sur certains projets, nous avons besoin d’avoir des environnements de maintenance les plus proches possibles des environnements
du client. Dans cette situation, l’écart entre Debian et CentOS est à prendre en compte. Cela reste tout de même une distribution intéressant et largement utilisé de manière professionnel. Je me penche
sur Ubuntu. Son support est de 5 ans (10 ans en payant une licence). Les critères de support et gratuité ne sont pas remplis.
Je n’ai pas encore cité RHEL. Historiquement tout le monde le considère comme le jumeau payant de CentOS. Une petite précision RHEL est communautaire et Red Hat fait payer des licences. Ces dernières sont nécessaires
pour bénéficier du support et pouvoir accéder au dépôt. Il existe un moyen d’obtenir 16 licences gratuites pour uniquement à destination de développement avec un renouvellement annuel. Dans
ces conditions, RHEL ne répond pas à mon cahier des charges.
Rocky linux est géré par une communauté fondé par Gregory Kurtzer. C’est l’ancien fondateur de CentOS. L’équipe est très jeune, la version 8.5 est la première version proposant la
fonctionnalité de boot secure. Cette version est sortie le 15 novembre 2021.
Enfin, AlmaLinux qui a sorti sa première version stable le 30 avril 2021. Elle satisfait tous les critères du cahier des charges. C’est un système d’exploitation Linux Open Source qui est basé sur une communauté.
AlmaLinux est un fork de RHEL depuis 2021. L’équipe cœur existent depuis 2010, c’est la même équipe que CloudLinux OS. Leur but est de proposer une distribution qui permet la continuité de la compatibilité
avec les versions RHEL. La Fondation AlmaLinux promet un investissement annuel d’un million de dollars.
En récapitulatif de toutes ces explications voici un arbre de décision
Migration de CentOS 8 vers AlmaLinux
La migration de CentOS 8 vers AlmaLinux est très simple. Quelques lignes de commandes suffisent :