Passez de CentOS 7 à Oracle Linux 7

Introduction

Remarque : CentOS 7 a atteint sa fin de vie (EOL) le 30 juin 2024. Cette situation signifie que Red Hat, la société derrière CentOS, ne fournit plus de mises à jour de sécurité ou de corrections de bogues pour le système d'exploitation.

Le tutoriel suivant fournit des procédures pas à pas pour basculer automatiquement une instance CentOS 7 vers Oracle Linux 7 en supprimant ou en remplaçant les packages propres à CentOS par l'équivalent Oracle Linux. Le fichier README.md dans le référentiel Oracle centos2ol sur GitHub indique que le script utilisé dans ce tutoriel est un travail en cours et n'est pas conçu pour gérer toutes les configurations possibles.

Assurez-vous que vous disposez d'une sauvegarde complète du système avant de démarrer ce processus si le script ne parvient pas à convertir le système.

Consultez les derniers détails du projet centos2ol dans le fichier README.md du projet.

Objectifs

Dans ce tutoriel, vous allez :

Prérequis

Vérifiez la version de CentOS

  1. Ouvrez un terminal et connectez-vous à l'instance.

  2. Obtenez la version de CentOS.

    sudo cat /etc/redhat-release
    
    sudo cat /etc/os-release
    

    Ces deux commandes indiquent que l'instance exécute CentOS 7.

Recherche de noyaux non standard

  1. Obtenez la liste des noyaux installés à l'aide de yum.

    sudo yum list installed kernel
    

    La liste affiche tous les noyaux installés à l'aide de yum. Nous vous recommandons vivement de supprimer tous les noyaux non standard ; par exemple, tout noyau installé et non fourni par le référentiel de base ou de mises à jour. Inclut la suppression des noyaux centosplus.

  2. Obtenez la liste des autres noyaux installés à l'aide de grubby.

    sudo grubby --info=ALL | grep ^kernel
    

    Exemple de sortie :

    [oracle@centos-7 ~]$ sudo grubby --info=ALL | grep ^kernel
    kernel=/boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64
    kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64
    kernel=/boot/vmlinuz-0-rescue-281810806a454564906c048d496729db
    

    La liste affiche tous les noyaux configurés pour être utilisés. Encore une fois, nous recommandons fortement d'enlever tous les noyaux non standard.

Suppression de noyaux non standard avec Yum

En raison de la vulnérabilité GRUB2 BootHole, le shim d'initialisation sécurisé d'Oracle Linux peut uniquement initialiser les noyaux signés par Oracle, et nous pouvons uniquement remplacer les noyaux CentOS par défaut. Bien que cela n'ait pas d'impact sur un système si SecureBoot est désactivé, son activation ultérieure pourrait le rendre non amorçable. Pour cette raison, nous vous recommandons vivement de supprimer tous les noyaux non standard ; par exemple, tout noyau installé non fourni par le référentiel base ou updates, y compris les noyaux CentOSPlus.

Remarque : Ignorez cette section si votre système ne dispose pas de noyaux non standard en fonction de la description ci-dessus. (N'essayez pas de supprimer le noyau à l'aide de yum si un seul noyau est installé sur votre système. La suppression de l'entrée de noyau du seul noyau fonctionnel ou du noyau incorrect peut entraîner l'échec de l'initialisation du système et nécessiter l'initialisation en mode monoutilisateur pour corriger le serveur endommagé.)

  1. Retirez les noyaux non standard.

    sudo yum remove <KERNEL>
    

    <KERNEL> est le nom complet du package fourni par rpm -q kernel.

Supprimer les noyaux non standard avec Grubby

grubby est un outil de ligne de commande permettant de mettre à jour et d'afficher des informations sur les fichiers de configuration du programme d'initialisation grub. Cet outil permet à un administrateur de désactiver les noyaux installés en dehors de yum.

Remarque : Ignorez cette section si votre système ne dispose pas de noyaux non standard en fonction de la description de la section précédente. (N'essayez pas de supprimer le noyau à l'aide de yum si un seul noyau est installé sur votre système. La suppression de l'entrée de noyau du seul noyau fonctionnel ou du noyau incorrect peut entraîner l'échec de l'initialisation du système et nécessiter l'initialisation en mode monoutilisateur pour corriger le serveur endommagé.)

  1. Obtenez l'index affecté à chacune des entrées d'initialisation du noyau installé.

    sudo grubby --info=ALL | grep -E "^kernel|^index"
    

    Exemple de sortie :

    [oracle@centos-7 ~]$ sudo grubby --info=ALL | grep -E "^kernel|^index"
    index=0
    kernel=/boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64
    index=1
    kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64
    index=2
    kernel=/boot/vmlinuz-0-rescue-281810806a454564906c048d496729db
    index=3
    
  2. Supprimez les entrées d'initialisation du noyau non standard.

    grubby --remove-kernel=<MENU_INDEX>
    

    <MENU_INDEX> est la valeur d'index renvoyée par la sortie de la commande précédente.

Vérifier la configuration d'YUM

  1. Obtenez la liste des référentiels activés.

    sudo yum repolist
    

    Exemple de sortie :

    [oracle@centos-7 ~]$ sudo yum repolist
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: ftp.plusline.net
     * epel: mirror.imt-systems.com
     * extras: mirror.imt-systems.com
     * updates: ftp.plusline.net
    repo id                   repo name                                       status
    base/7/x86_64             CentOS-7 - Base                                 10072
    docker-ce-stable/7/x86_64 Docker CE Stable - x86_64                         183
    epel/x86_64               Extra Packages for Enterprise Linux 7 - x86_64  13738
    extras/7/x86_64           CentOS-7 - Extras                                 515
    updates/7/x86_64          CentOS-7 - Updates                               4383
    zfs/7/x86_64              ZFS on Linux for EL7 - dkms                        55
    repolist: 28946
    
  2. Mettez à jour tous les packages installés.

    sudo yum -y upgrade
    

Suppression ou désactivation de référentiels autres que CentOS

Désactivez tous les référentiels autres que CentOS. Cette étape permet d'éviter les conflits de packages avec les référentiels tiers lors du basculement. Vous pouvez réactiver les référentiels après le changement.

  1. Désactivez les référentiels autres que CentOS.

    sudo yum-config-manager --disable <REPOSITORY_NAME>
    

    Remplacez <REPOSITORY_NAME> par le nom de référentiel de tout référentiel autre que CentOS activé sur votre système.

Vérification de l'espace libre dans /var/cache

  1. Obtenir un rapport sur l'utilisation de l'espace disque.

    df -h
    

    Remarque : dans cet exemple, /var/cache se trouve sous le point de montage /, avec 35G disponible. Ce système dispose de la version gratuite 5G recommandée par le projet centos2ol.

Rechercher les mises à jour automatiques dans Cron

Un administrateur peut activer les mises à jour automatiques de plusieurs façons. Cette section recherche les travaux cron qui exécutent yum directement ou à l'aide d'un script. Désactivez ces travaux, le cas échéant, pour éviter qu'ils ne s'exécutent pendant le processus de basculement.

  1. Répertoriez les travaux cron de root.

    sudo crontab -l
    
  2. Répertoriez les travaux cron de l'utilisateur.

    sudo crontab -u oracle -l
    
  3. Répertoriez les tâches CRON quotidiennes, horaires, hebdomadaires et mensuelles.

    sudo ls -al /etc/cron*
    

    Vérifiez ensuite les fichiers individuels à l'aide de less ou de l'éditeur de votre choix.

    Remarque : les fichiers dont le nom contient yum-cron sont gérés par le service yum-cron. Nous aborderons la désactivation de ces éléments dans la section suivante du tutoriel.

  4. Répertoriez le contenu de /etc/crontab.

    sudo less /etc/crontab
    

Désactiver les mises à jour CRON YUM

Une autre façon d'appliquer automatiquement les mises à jour est d'utiliser yum-cron.

  1. Recherchez le package yum-cron.

    sudo yum list installed yum-cron
    

    Exemple de sortie :

    [oracle@centos-7 ~]$ yum list installed yum-cron
    Loaded plugins: fastestmirror, langpacks
    Determining fastest mirrors
     * base: ftp.plusline.net
     * epel: ftp.plusline.net
     * extras: ftp.plusline.net
     * updates: ftp.rz.uni-frankfurt.de
    Installed Packages
    yum-cron.noarch                    3.4.3-168.el7.centos                    @base
    

    Si la sortie indique que le package yum-cron n'est pas installé sur votre système, passez à la section suivante.

  2. Vérifiez l'état du service systemd yum-cron.

    sudo systemctl is-enabled yum-cron
    sudo systemctl is-active yum-cron
    
  3. Désactivez le service systemd yum-cron s'il est actif et en cours d'exécution.

    sudo systemctl stop yum-cron
    sudo systemctl disable yum-cron
    

Téléchargement et exécution du script de conversion

  1. Téléchargez le script centos2ol.sh à partir de GitHub.

    Le moyen le plus simple d'obtenir le script est d'utiliser curl :

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

    Si Git est installé, utilisez l'option clone pour extraire le référentiel à partir de GitHub.

    git clone https://github.com/oracle/centos2ol.git
    
  2. Exécutez le script centos2ol.sh.

    Si vous avez utilisé git clone, remplacez le répertoire de travail en cours par le répertoire centos2ol.

    Reportez-vous aux options d'utilisation du script en transmettant l'option -h.

    sudo bash centos2ol.sh -h
    

    Exécutez le script et attendez qu'il se termine.

    sudo bash centos2ol.sh
    

    Dans le cadre du processus, le noyau par défaut est basculé vers la dernière version du noyau Unbreakable Enterprise Kernel (UEK) d'Oracle afin d'améliorer considérablement les performances et l'évolutivité de l'ordonnanceur de traitements, de la gestion de la mémoire, des systèmes de fichiers et de la pile réseau. Nous remplaçons également le noyau CentOS existant par le noyau compatible Red Hat (RHCK) équivalent, dont le matériel ou l'application spécifique peut avoir besoin s'il a imposé des restrictions strictes sur la version du noyau.

  3. Réinitialisation du système.

    sudo reboot
    

Confirmer le basculement du système vers Oracle Linux

  1. A l'aide du terminal, connectez-vous à nouveau à l'instance.

  2. Vérifiez la version de distribution et les détails du noyau.

    cat /etc/os-release
    cat /etc/redhat-release
    uname -r
    

Contribuer au projet centos2ol GitHub

  1. Obtenir de l'aide.

    Ouvrez un problème GitHub pour les rapports de bogues non liés à la sécurité, les questions ou les demandes d'améliorations.

Pour plus d'informations

Documentation Oracle Linux
Formation Oracle Linux
Centre de formation Oracle Linux
Mettre à niveau Oracle Linux avec Leapp

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.