Script de conversión de RHEL 7 a CentOS 7
Hemos recibido solicitudes de asistencia para convertir sistemas que ejecutan RHEL 7 a CentOS 7. Hay varias razones por las que las organizaciones quieren hacer esta transición, que van desde el deseo de estandarizar sus flotas de servidores a los cambios de licencias, futuras rutas de migración, u otros factores.
CentOS es una versión libre de RHEL impulsada por la comunidad, lo que la convierte en una excelente alternativa a RHEL con licencia para quienes no necesitan soporte oficial. Aunque el cambio de repositorios puede parecer una tarea sencilla, en realidad es un proceso algo intrincado. Por esta razón, hemos creado un script para realizar automáticamente la conversión.
Este artículo ofrece una visión en profundidad del script de conversión y del proceso de migración de RHEL 7 a CentOS 7. No obstante, hay que tener en cuenta que CentOS 7 llegará al final de su vida útil en junio de 2024, por lo que el soporte del proveedor finalizará en ese momento y las organizaciones tendrán que adquirir el soporte ampliado para seguir utilizando esta distribución de forma segura.
Pasemos ahora a los pasos de la migración...
¿Qué hace este script?
Antes de ejecutar este script, conviene entender lo que hace. Este script está escrito en Python y realiza las nueve operaciones siguientes:
1. Compruebe si la conversión ya se ha completado
Este script está diseñado para ser idempotente, lo que significa que puede ejecutarse múltiples veces sin ningún riesgo. El estado de cada paso se almacena en un archivo especial, por lo que el script nunca volverá a ejecutar un paso completado previamente. Si se han realizado todos los pasos, el script devolverá el mensaje "El sistema ya ha migrado a CentOS 7" y saldrá.
2. Compruebe si el script se está ejecutando con privilegios de root
La mayoría de los comandos ejecutados por el script requieren privilegios de root, por lo que esto se comprueba al principio.
3. Compruebe si el sistema actual es RHEL 7
El script verifica que el sistema instalado es RHEL 7. Dado que cada sistema operativo tiene sus propias características específicas, intentar ejecutar el script en un sistema no compatible puede dar lugar a resultados inesperados.
4. Eliminar los paquetes específicos de RHEL
Este paso elimina paquetes específicos de RHEL, como logotipos y archivos de configuración que contienen información sobre la versión y los repositorios. Estos son los paquetes principalmente responsables de la "marca" de la distribución.
5. Instalar paquetes específicos de CentOS
Tras eliminar los paquetes específicos de RHEL, se sustituyen por los paquetes correspondientes de CentOS. En adelante, se utilizarán los repositorios de CentOS para instalar y actualizar paquetes.
6. Actualizar los paquetes de distribución
Se realiza una actualización periódica de todos los paquetes del sistema a las últimas versiones disponibles en los repositorios de CentOS.
7. Sincronizar los paquetes de distribución
El paso adicional de mantener los paquetes sincronizados con las últimas versiones disponibles en los repositorios de CentOS es necesario para los casos en los que un paquete en CentOS tiene una versión inferior a la equivalente en RHEL. Aunque este escenario es poco frecuente, aún así es necesario abordarlo ya que puede surgir.
8. Realice algunas operaciones específicas de EFI y Secure Boot
Este paso es muy crucial para convertir sistemas que funcionan en modo UEFI (no BIOS). Muchas soluciones y artículos no proporcionan información sobre los pasos necesarios para manejar este tipo de sistemas, pero no hacerlo puede resultar en un sistema operativo no arrancable después de la conversión. RHEL y CentOS utilizan diferentes rutas para los gestores de arranque Shim y Grub2 - /boot/efi/EFI/redhat y /boot/efi/EFI/centos respectivamente.
Esta discrepancia conduce a dos problemas. En primer lugar, después de la conversión, el gestor de arranque Grub2 intentará localizar su configuración en la nueva ruta, a pesar de que todavía está situado en el directorio /boot/efi/EFI/redhat. El segundo problema son las entradas de arranque en el firmware UEFI. Una entrada RHEL seguirá apuntando al gestor de arranque en /boot/efi/EFI/redhat, que ya no es accesible a través de esta ruta.
La mayoría del firmware UEFI implementa un modo fallback, donde el gestor de arranque aún puede ser detectado y lanzado. Sin embargo, la implementación de este modo es opcional y no todo el hardware lo soporta. Como resultado, el sistema no podrá arrancar después de la migración. Ambos problemas se resuelven automáticamente en este paso.
Además, en este paso, el script se asegura de que los gestores de arranque Shim y Grub2 y el kernel están instalados desde el repositorio de CentOS. Si queda alguno de estos paquetes de RHEL, el sistema no podrá arrancar en modo Secure Boot. Dichos paquetes serán detectados y reinstalados desde los repositorios de CentOS.
9. Establecer el registro GRUB por defecto
Generalmente, los sistemas RHEL tienen instalados varios kernels más recientes. Por lo tanto, el script hace que el kernel de CentOS sea el kernel por defecto para el siguiente paso de arranque en el paso final. Este paso también es necesario para los sistemas que se ejecutan en modo Secure Boot.
RHEL 7 a CentOS 7: Proceso paso a paso
1. Crear una copia de seguridad del sistema
Antes de iniciar el proceso de migración, le recomendamos que realice una copia de seguridad completa de su sistema RHEL 7.
2. Descargar el guión
El script Python para migrar RHEL 7 a CentOS 7 está disponible en GitHub:
https://github.com/cloudlinux/rhel2centos
Puede ejecutar este comando para descargar el script en su ordenador.
$ curl -O https://raw.githubusercontent.com/cloudlinux/rhel2centos/main/migrate_7.py
3. Ejecutar el script
Una vez descargado el archivo, ejecute el script mediante el comando Python.
$ sudo python migrate_7.py
Salida:
El sistema se migra a CentOS 7.
4. Verificar la migración
Para comprobar si la migración se ha realizado correctamente, ejecute el siguiente comando para comprobar el archivo de liberación.
$ cat /etc/redhat-release
Salida:
CentOS Linux versión 7.9.2009 (Core)
Compruebe si el sistema arranca el kernel CentOS por defecto.
$ sudo grubby -info DEFAULT | grep CentOS
Salida:
title=CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (Core)
Nota: Los números de versión pueden variar a medida que se publiquen nuevas actualizaciones.
RHEL 7 frente a CentOS
RHEL 7 es una distribución comercial desarrollada por Red Hat, una destacada empresa de software empresarial, mientras que CentOS 7 es una distribución comunitaria creada a partir del código fuente de Red Hat Enterprise Linux (RHEL).
Mientras que RHEL 7 está diseñado específicamente para satisfacer las necesidades de los entornos empresariales que requieren una seguridad, estabilidad y soporte sólidos, CentOS 7 es popular entre los usuarios particulares y las organizaciones más pequeñas que buscan una alternativa libre y de código abierto a RHEL.
Se considera que tanto RHEL 7 como CentOS 7 tienen buenos niveles de seguridad. Sin embargo, con el soporte de nivel empresarial y el acceso a herramientas de seguridad propietarias, RHEL 7 tiene una modesta ventaja sobre CentOS. Por ello, RHEL 7 destaca como una opción superior para las empresas que necesitan altos niveles de seguridad.
Por otro lado, CentOS 7 es el camino a seguir si buscas un sustituto gratuito y de código abierto con una gran selección de paquetes. Independientemente de la versión que elijas, tanto RHEL 7 como CentOS 7 son sistemas operativos extremadamente seguros y fiables que pueden satisfacer las demandas de la mayoría de los usuarios.
También es importante tener en cuenta que el soporte de mantenimiento para RHEL 7 finalizará el 30 de junio de 2024 y CentOS 7 también llegará a su fin de vida en esa fecha. Dado que queda poco más de un año, se recomienda a los usuarios y administradores que empiecen a planificar su migración.
Si tiene dudas sobre la migración a distros alternativaspuede optar por el soporte ampliado de soporte EOL de TuxCare para CentOS 7que ofrece un ciclo de vida ampliado de cuatro años.
Lo esencial
En resumen, cambiar de RHEL 7 a CentOS 7 puede ser una tarea difícil. Sin embargo, se puede llevar a cabo fácilmente y sin tener ningún impacto negativo en el sistema, siempre y cuando se haga con una planificación y ejecución cuidadosas.
Esperamos que esta guía le ayude a convertir su sistema RHEL 7 a CentOS 7.