Cambio de CentOS 7 a Oracle Linux 7

Introducción

Nota: CentOS 7 alcanzó el final de su vida útil el 30 de junio de 2024. Esta situación significa que Red Hat, la compañía detrás de CentOS, ya no proporciona actualizaciones de seguridad ni correcciones de bugs para el sistema operativo.

En el siguiente tutorial se proporcionan procedimientos paso a paso para cambiar automáticamente una instancia de CentOS 7 a Oracle Linux 7 eliminando o sustituyendo cualquier paquete específico de CentOS por el equivalente de Oracle Linux. README.md en el repositorio centos2ol de Oracle en GitHub indica que el script utilizado en este tutorial es un trabajo en curso y no está diseñado para manejar todas las configuraciones posibles.

Asegúrese de tener una copia de seguridad completa del sistema antes de iniciar este proceso si el script no puede convertir correctamente el sistema.

Revise los detalles más recientes del proyecto centos2ol en el archivo README.md del proyecto.

Objetivos

En este tutorial, hará lo siguiente:

Requisito

Compruebe la versión CentOS

  1. Abra un terminal y conéctese a la instancia.

  2. Obtenga la versión de CentOS.

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

    Ambos comandos muestran que la instancia está ejecutando CentOS 7.

Comprobar si hay núcleos no estándar

  1. Obtenga una lista de los núcleos instalados mediante yum.

    sudo yum list installed kernel
    

    En la lista se muestran todos los núcleos instalados mediante yum. Recomendamos encarecidamente eliminar todos los núcleos no estándar; por ejemplo, cualquier núcleo instalado y no proporcionado por la base o el repositorio de actualizaciones. Incluye la eliminación de cualquier núcleo centosplus.

  2. Obtenga una lista de otros núcleos instalados mediante grubby.

    sudo grubby --info=ALL | grep ^kernel
    

    Salida de ejemplo:

    [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 lista muestra todos los núcleos configurados para su uso. Una vez más, recomendamos encarecidamente eliminar todos los núcleos no estándar.

Eliminación de núcleos no estándar con Yum

Debido a la vulnerabilidad GRUB2 BootHole, el shim de inicio seguro de Oracle Linux solo puede iniciar núcleos firmados por Oracle, y solo podemos reemplazar los núcleos CentOS predeterminados. Si bien esto puede no afectar a un sistema si SecureBoot está desactivado, si lo activa más tarde, podría hacer que no se pueda iniciar. Por ese motivo, recomendamos eliminar todos los núcleos no estándar; por ejemplo, cualquier núcleo instalado que no proporcione el repositorio base o updates, incluidos los núcleos CentOSPlus.

Nota: Omita esta sección si el sistema no tiene núcleos no estándar según la descripción anterior. (No intente eliminar el núcleo mediante yum si el sistema solo tiene un núcleo instalado. La eliminación de la entrada de núcleo del único núcleo en funcionamiento o del núcleo incorrecto puede provocar que el sistema no se inicie y que sea necesario iniciar en modo de usuario único para corregir el servidor dañado).

  1. Elimine los núcleos no estándar.

    sudo yum remove <KERNEL>
    

    Donde <KERNEL> es el nombre completo del paquete proporcionado por rpm -q kernel.

Eliminación de núcleos no estándar con Grubby

grubby es una herramienta de línea de comandos para actualizar y mostrar información sobre los archivos de configuración del cargador de inicio de grub. Esta herramienta permite a un administrador desactivar los núcleos instalados fuera de yum.

Nota: Omita esta sección si el sistema no tiene núcleos no estándar basados en la descripción de la sección anterior. (No intente eliminar el núcleo mediante yum si el sistema solo tiene un núcleo instalado. La eliminación de la entrada de núcleo del único núcleo en funcionamiento o del núcleo incorrecto puede provocar que el sistema no se inicie y que sea necesario iniciar en modo de usuario único para corregir el servidor dañado).

  1. Obtenga el índice asignado a cada una de las entradas de inicio del núcleo instalado.

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

    Salida de ejemplo:

    [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. Elimine las entradas de inicio del núcleo no estándar.

    grubby --remove-kernel=<MENU_INDEX>
    

    Donde <MENU_INDEX> es el valor de índice devuelto de la salida del comando anterior.

Comprobar configuración de YUM

  1. Obtenga una lista de repositorios activados.

    sudo yum repolist
    

    Salida de ejemplo:

    [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. Actualice todos los paquetes instalados.

    sudo yum -y upgrade
    

Eliminación o desactivación de repositorios que no sean CentOS

Desactive todos los repositorios que no sean CentOS. Este paso ayuda a evitar conflictos de paquetes con repositorios de terceros durante el cambio. Puede volver a activar los repositorios después del cambio.

  1. Desactive los repositorios que no sean CentOS.

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

    Sustituya <REPOSITORY_NAME> por el nombre de repositorio de cualquier repositorio que no sea CentOS activado en el sistema.

Compruebe el espacio libre en /var/cache

  1. Obtener un informe de uso de espacio en disco.

    df -h
    

    Nota: En este ejemplo, /var/cache está en el punto de montaje /, con 35G disponible. Este sistema tiene la opción 5G gratuita recomendada por el proyecto centos2ol.

Buscar actualizaciones automáticas en cron

Hay varias formas en que un administrador puede activar las actualizaciones automáticas. Esta sección comprueba los trabajos cron que ejecutan yum directamente o mediante un script. Desactive estos trabajos, si los encuentra, para evitar que se ejecuten durante el proceso de conmutación.

  1. Enumere los trabajos cron de la raíz.

    sudo crontab -l
    
  2. Muestre los trabajos cron del usuario.

    sudo crontab -u oracle -l
    
  3. Enumere los trabajos cron diarios, por horas, semanales y mensuales.

    sudo ls -al /etc/cron*
    

    A continuación, compruebe los archivos individuales mediante less o el editor que desee.

    Nota: El servicio yum-cron gestiona los archivos que contienen yum-cron en su nombre. Abordaremos la desactivación de estos en la siguiente sección del tutorial.

  4. Muestre el contenido de /etc/crontab.

    sudo less /etc/crontab
    

Desactivar actualizaciones de cron de YUM

Otra forma de aplicar actualizaciones automáticamente es con yum-cron.

  1. Compruebe el paquete yum-cron.

    sudo yum list installed yum-cron
    

    Salida de ejemplo:

    [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 salida muestra que el paquete yum-cron no está instalado en el sistema, vaya a la siguiente sección.

  2. Compruebe el estado del servicio systemd yum-cron.

    sudo systemctl is-enabled yum-cron
    sudo systemctl is-active yum-cron
    
  3. Desactive el servicio systemd yum-cron si está activo y en ejecución.

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

Descarga y ejecución del script de conversión

  1. Descargue el script centos2ol.sh de GitHub.

    La forma más sencilla de obtener el script es utilizar curl:

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

    Si tiene instalado Git, utilice la opción clone para extraer el repositorio de GitHub.

    git clone https://github.com/oracle/centos2ol.git
    
  2. Ejecute el archivo de comandos centos2ol.sh.

    Si ha utilizado git clone, cambie el directorio de trabajo actual al directorio centos2ol.

    Consulte las opciones de uso del script transfiriendo la opción -h.

    sudo bash centos2ol.sh -h
    

    Ahora, ejecute el script y espere a que termine.

    sudo bash centos2ol.sh
    

    Como parte del proceso, el núcleo por defecto se cambia a la última versión de Unbreakable Enterprise Kernel (UEK) de Oracle para permitir amplias mejoras de rendimiento y escalabilidad en el programador de procesos, la gestión de memoria, los sistemas de archivos y la pila de red. También sustituimos el núcleo CentOS existente por el núcleo compatible equivalente de Red Hat (RHCK), que puede requerir un hardware o una aplicación específicos si ha impuesto restricciones estrictas de la versión del núcleo.

  3. Reinicie el sistema.

    sudo reboot
    

Confirmar cambio de sistema a Oracle Linux

  1. Con el terminal, vuelva a conectarse a la instancia.

  2. Compruebe la versión de distribución y los detalles del núcleo.

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

Contribuir al proyecto centos2ol GitHub

  1. Obtener soporte.

    Abra un problema de GitHub para obtener informes de bugs, preguntas o solicitudes de mejoras no relacionados con la seguridad.

Para Obtener Más Información

Documentación de Oracle Linux
Formación de Oracle Linux
Estación de formación de Oracle Linux
Actualización de Oracle Linux con Leapp

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.