Passer de CentOS 7 à Oracle Linux 7

Présentation

Note : CentOS 7 a atteint sa fin de vie 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 correctifs de bogues pour le système d'exploitation.

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

Assurez-vous d'avoir une sauvegarde complète du système avant de démarrer ce processus si le script ne peut 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 :

Conditions requises :

Vérifiez la version CentOS

  1. Ouvrez un terminal et connectez-vous à votre 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.

Rechercher les noyaux non standard

  1. Obtenez une 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 recommandons fortement 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 de tous les 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 de supprimer tous les noyaux non standard.

Supprimer les noyaux non standard avec Yum

En raison de la vulnérabilité GRUB2 BootHole, la délimitation de démarrage sécurisé Oracle Linux ne peut démarrer que les noyaux signés par Oracle et nous ne pouvons remplacer que les noyaux CentOS par défaut. Bien que cela n'ait pas d'incidence sur un système si SecureBoot est désactivé, son activation ultérieure pourrait le rendre non démarrable. 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.

Note : Ignorez cette section si votre système ne comporte pas de noyaux non standard basés sur 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 du noyau du seul noyau de travail ou du noyau incorrect peut entraîner l'échec du démarrage du système et nécessiter un démarrage en mode utilisateur unique pour corriger le serveur défaillant.)

  1. Supprimez les noyaux non standard.

    sudo yum remove <KERNEL>
    

    <KERNEL> est le nom complet de l'ensemble 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 chargeur de démarrage grub. Cet outil permet à un administrateur de désactiver les noyaux installés en dehors de yum.

Note : Ignorez cette section si votre système ne comporte pas de noyau non standard basé sur 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 du noyau du seul noyau de travail ou du noyau incorrect peut entraîner l'échec du démarrage du système et nécessiter un démarrage en mode utilisateur unique pour corriger le serveur défaillant.)

  1. Obtenez l'index affecté à chacune des entrées de démarrage 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 toutes les entrées de démarrage du noyau non standard.

    grubby --remove-kernel=<MENU_INDEX>
    

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

Vérifier la configuration YUM

  1. Obtenir 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 ensembles installés.

    sudo yum -y upgrade
    

Supprimer ou désactiver des référentiels non CentOS

Désactivez tous les référentiels non CentOS. Cette étape permet d'éviter les conflits de package avec les référentiels tiers pendant le commutateur. Vous pouvez réactiver les référentiels après le commutateur.

  1. Désactivez les référentiels non CentOS.

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

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

Vérifiez l'espace libre dans /var/cache

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

    df -h
    

    Note : Dans cet exemple, /var/cache se trouve sous le point de montage /, 35G étant disponible. Ce système offre 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 tâches cron qui exécutent yum directement ou à l'aide d'un script. Désactivez ces tâches, si elles sont trouvées, pour éviter qu'elles ne s'exécutent pendant le processus de permutation.

  1. Liste des tâches cron de la racine.

    sudo crontab -l
    
  2. Répertoriez les tâches cron de l'utilisateur.

    sudo crontab -u oracle -l
    
  3. Liste des 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.

    Note : Les fichiers contenant yum-cron dans leur nom sont gérés par le service yum-cron. Nous traiterons de la désactivation de ceux-ci dans la section suivante du tutoriel.

  4. Liste du contenu de /etc/crontab.

    sudo less /etc/crontab
    

Désactiver les mises à jour YUM Cron

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

  1. Recherchez l'ensemble 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 affiche l'ensemble yum-cron non 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écharger et exécuter le script de conversion

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

    La façon la 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 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 courant par le répertoire centos2ol.

    Consultez les 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 passé à la dernière version du noyau Unbreakable Enterprise Kernel (UEK) d'Oracle afin d'améliorer considérablement les performances et l'évolutivité du programmateur de processus, 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 équivalent (RHCK), dont le matériel ou l'application spécifique peut avoir besoin s'il a imposé des restrictions strictes de version du noyau.

  3. Redémarrez le système.

    sudo reboot
    

Confirmer le passage du système à Oracle Linux

  1. À l'aide du terminal, connectez-vous à nouveau à votre 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, les questions ou les demandes d'amélioration non liés à la sécurité.

Pour plus d'informations

Documentation sur Oracle Linux
Formation sur Oracle Linux
Parcours d'apprentissage pour Oracle Linux
Mettre à niveau Oracle Linux avec Leapp

Autres ressources d'apprentissage

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

Pour obtenir la documentation sur le produit, visitez Oracle Help Center.