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:
- Comprobar si hay núcleos no estándar
- Asegúrese de que la configuración de
yum
funciona - Desactivar o eliminar repositorios obsoletos y no CentOS
- Garantice 5 GB de espacio libre en
/var/cache
- Desactive todas las actualizaciones automáticas, incluido
yum-cron
Requisito
- Un sistema con CentOS 7 instalado.
Compruebe la versión CentOS
-
Abra un terminal y conéctese a la instancia.
-
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
-
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úcleocentosplus
. -
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).
-
Elimine los núcleos no estándar.
sudo yum remove <KERNEL>
Donde
<KERNEL>
es el nombre completo del paquete proporcionado porrpm -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).
-
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
-
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
-
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
-
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.
-
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
-
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.
-
Enumere los trabajos cron de la raíz.
sudo crontab -l
-
Muestre los trabajos cron del usuario.
sudo crontab -u oracle -l
-
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 contienenyum-cron
en su nombre. Abordaremos la desactivación de estos en la siguiente sección del tutorial. -
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
.
-
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. -
Compruebe el estado del servicio systemd
yum-cron
.sudo systemctl is-enabled yum-cron sudo systemctl is-active yum-cron
-
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
-
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
-
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.
-
Reinicie el sistema.
sudo reboot
Confirmar cambio de sistema a Oracle Linux
-
Con el terminal, vuelva a conectarse a la instancia.
-
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
-
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.