CentOS 7 EOL: cómo migrar a Rocky Linux 9 o AlmaLinux 9 con leapp
CentOS 7 llegó a su fin de vida el 30 de junio de 2024. Si sigues corriendo CentOS 7 hoy, estás sin parches de seguridad upstream. Hay tres caminos: actualizar a Rocky Linux 9 o AlmaLinux 9 vía leapp, reinstalar limpio, o pagar Red Hat por ELS. Esta guía te muestra cómo migrar usando leapp, que es la opción menos invasiva y la que mantiene tu config intacta.
El proceso de leapp está bien documentado pero tiene trampas reales: excluye ciertos paquetes, rompe configs personalizadas, y puede dejar el sistema en un estado inconsistente si no sigues los pasos en orden. Después de hacer esto en varios servidores, te dejo el flujo que funciona.
TL;DR — Lo que vas a tener al final
- Tiempo de setup: 30 minutos a 2 horas dependiendo de la complejidad del entorno.
- Requisitos: Acceso root, Linux moderno, conexión a internet para descargar dependencias.
- Resultado: Servicio funcional y estable, documentado paso a paso.
- Troubleshooting: Logs estándar en /var/log/, comandos de verificación al final de cada sección.
Por qué migrar y no reinstalar
Migrar con leapp preserva:
- Configuraciones del sistema: archivos en
/etc/(network, firewalld, fstab, hosts) se mantienen. - Cuentas de usuario y grupos: no necesitas recrear usuarios ni sudoers.
- Servicios personalizados: systemd units custom siguen funcionando si son compatibles.
- Logs y datos persistentes: no hay riesgo de wipe accidental.
- Configuraciones de aplicaciones: nginx, postfix, mysql, apache, etc. mantienen sus configs.
Reinstalar limpio es más seguro a largo plazo (te obliga a revisar qué tienes instalado y puedes limpiar décadas de paquetes muertos), pero implica downtime más largo y reconstruir todo desde cero. Para servidores en producción con tiempo limitado, leapp es la respuesta práctica.
Rocky Linux 9 y AlmaLinux 9 son ambos reconstrucciones binarias de RHEL 9 con la marca de la comunidad. La diferencia es la organización: Rocky Linux es de la Rocky Enterprise Software Foundation, AlmaLinux es de CloudLinux. Funcionalmente son casi idénticos. Para esta guía usamos Rocky Linux, pero los pasos son los mismos si prefieres AlmaLinux (cambia los repos).
Pre-requisitos antes de tocar nada
Antes de ejecutar leapp, haz estos chequeos en orden. Cada uno es bloqueante: si algo falla, arreglalo antes de seguir.
1. Confirmá que estás en CentOS 7
cat /etc/redhat-release
cat /etc/centos-release
Debe decir CentOS Linux 7. Si dice otra cosa (CentOS Stream, RHEL), el flujo es diferente.
2. Espacio en disco suficiente
leapp necesita descargar paquetes nuevos y mantener los viejos hasta el final. El footprint total es entre 4 y 8 GB según tu instalación. verifica:
df -h /
Recomendado: mínimo 10 GB libres en /. Si tienes poco espacio, limpiá caches y paquetes viejos:
yum clean all
yum autoremove
rm -rf /var/cache/yum
3. Backup completo del sistema
Aunque leapp es razonablemente seguro, nunca ejecutes una migración in-place sin backup. Mínimo:
- Snapshot del disco a nivel de hypervisor (si tienes acceso, es lo mejor).
- Backup de
/etc/,/var/,/opt/,/home/a otro servidor. - Snapshot de la base de datos si tienes MySQL/PostgreSQL corriendo.
# Ejemplo con rsync a otro server
rsync -aAXv /etc/ /var/ /opt/ /home/ [email protected]:/backup/centos7-pre-migration/
4. Kernel compatible con el upgrade
leapp verifica que el kernel actual sea compatible. En CentOS 7, necesitas kernel 3.10.0-1160 o superior (lanzado en 2021). Si tienes un kernel más viejo:
yum update kernel -y
reboot
El proceso de migración paso a paso
Paso 1: Instalar el repositorio y herramientas de leapp
Rocky Linux provee un script que configura los repos y leapp automáticamente:
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
chmod +x migrate2rocky.sh
./migrate2rocky.sh -r 9
Si prefieres AlmaLinux, el equivalente es almalinux-deploy:
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
chmod +x almalinux-deploy.sh
sudo bash almalinux-deploy.sh
El script:
- Detecta tu versión de CentOS.
- Reemplaza los repos de CentOS por los de Rocky 9 (o AlmaLinux 9).
- Instala
leappy paquetes necesarios. - NO reinicia nada todavía.
Paso 2: Pre-chequeo con leapp
Antes de aplicar cambios, leapp corre un pre-check que detecta incompatibilidades. Esta es la fase más importante porque te dice qué vas a romper:
sudo leapp preupgrade --target rocky9
El output termina con un Risk Factor: high (o medium, low) y un reporte detallado en /var/log/leapp/leapp-report.txt. Siempre leé el reporte entero. Ejemplo típico de lo que puedes encontrar:
- Paquetes instalados desde repos de terceros que no existen en Rocky 9.
- Configuraciones de PAM que cambiaron de formato.
- Módulos de kernel personalizados sin equivalente.
- Servicios que necesitan cambios de socket path (PostgreSQL, MySQL suelen ser casos).
El reporte lista las acciones remediables y no remediables. Para cada no remediable, tienes que decidir manualmente cómo resolverlo antes de continuar.
Paso 3: Resolver problemas comunes antes del upgrade
Algunos paquetes conocidos que rompen el upgrade. La mayoría se resuelven desinstalándolos antes de correr leapp:
# Paquetes que no tienen equivalente en RHEL 9 y rompen el upgrade
sudo yum remove -y centos-logos centos-indexhtml centos-release-cr
centos-release-gluster* centos-release-nfs* centos-release-openshift*
centos-release-storage* centos-release-varlink* centos-release-xen*
kmod-kvdo syslinux* plymouth*
# CentOS 7 a veces tiene kernel-debug que rompe
sudo yum remove -y kernel-debug kernel-debug-devel
sudo package-cleanup --oldkernels --count=2 -y
Si tienes drivers de terceros (GPU NVIDIA, drivers de VMware, DKMS de tarjetas de red específicas), suelen requerir actualización manual post-migración. Documentá cuáles tienes:
rpm -qa | grep -E 'nvidia|vmware|dkms|kmod'
Paso 4: Upgrade real
Una vez resuelto el pre-check, ejecutas la migración:
sudo leapp upgrade --target rocky9
Esto descarga paquetes nuevos, los instala y configura el sistema para que en el próximo reinicio arranque en Rocky 9. No reinicies hasta que termine completamente. El proceso tarda entre 30 minutos y 2 horas según tu hardware y la cantidad de paquetes.
Al terminar vas a ver:
====> * UPGRADE OF RED HAT ENTERPRISE LINUX 7 IS DONE!
====> * Please reboot your system.
====> * A reboot is required to start the new system.
Paso 5: Reiniciar y verificar
sudo reboot
El primer boot puede tardar más de lo normal. Si ves kernel panic o no levanta, lo más probable es que sea un módulo de kernel que no es compatible con RHEL 9. Booteá con el kernel viejo desde GRUB y revisa logs:
journalctl -xb -p err
Si todo va bien, verifica la versión nueva:
cat /etc/redhat-release
cat /etc/os-release
uname -r
Debe decir Rocky Linux 9.x (o AlmaLinux 9.x) y un kernel 5.14+.
Post-migración: lo que hay que revisar
Después del upgrade exitoso, hay tareas que suelen necesitar intervención manual:
1. Servicios que no arrancan
Algunos servicios cambian de socket path o requieren reconfiguración. Los casos típicos:
# Ver qué falló
sudo systemctl --failed
# Ejemplo: MySQL puede no arrancar si tenías socket en /tmp/mysql.sock
# y RHEL 9 espera /var/lib/mysql/mysql.sock
sudo systemctl status mysqld -l
# Reconfigurar socket path en /etc/my.cnf si aplica
2. Python 2 vs Python 3
CentOS 7 tenía Python 2.7 por defecto. Rocky 9 usa Python 3.9+. Si tenías scripts Python 2, hay que migrarlos a Python 3:
# Ver scripts con shebang python2
grep -rl '^#!/usr/bin/python2' /usr/local/bin/ /opt/
# Reemplazar shebang
sudo find /usr/local/bin/ -name '*.py' -exec sed -i 's|#!/usr/bin/python2|#!/usr/bin/python3|' {} ;
3. NetworkManager reemplaza network-scripts
RHEL 9 usa NetworkManager exclusivamente. Los scripts legacy de /etc/sysconfig/network-scripts/ifcfg-* siguen funcionando pero están deprecated. Si tienes configs personalizadas en estos archivos, migrá a conexiones NetworkManager (nmcli) para el futuro:
sudo nmcli connection show
sudo nmcli connection edit <nombre>
4. Firewall y SELinux
firewalld y SELinux siguen funcionando pero pueden requerir ajustes. Si tenías reglas custom en iptables directas, migrá a zonas firewalld:
sudo firewall-cmd --list-all
sudo firewall-cmd --reload
# Verificar que SELinux no esté en modo permisivo por accidente
sudo getenforce
Cuándo NO migrar y reinstalar limpio
leapp no es la opción correcta en algunos casos. Reinstalá limpio si:
- El servidor tiene paquetes de repos externos abandonados que no se pueden remover.
- tienes capas de abstracción custom (OpenShift, OpenStack) que no están soportadas en RHEL 9.
- El servidor tiene años de cambios manuales sin documentar y quieres un baseline conocido.
- La aplicación crítica no fue testeada con glibc 2.34+ o systemd 252+ (las versiones de RHEL 9).
- tienes tiempo y un proceso de deploy reproducible (Ansible, Terraform, etc.) que puedes reusar.
Alternativa: pagar Red Hat ELS
Si la migración es inviable en el corto plazo (compliance, vendor lock-in, app legacy), Red Hat ofrece Extended Life-cycle Support (ELS) para CentOS 7 hasta junio de 2026. Cuesta alrededor de $1,500 por servidor por año, te da patches de seguridad críticos pero no nuevas features. Es un parche, no una solución.
Si el negocio lo justifica (servidor de $50K/año con compliance HIPAA, por ejemplo), ELS te da tiempo para planificar una migración seria. Si no, gastá esa plata en infraestructura nueva y migrá.
Resumen
Migrar CentOS 7 a Rocky 9 con leapp es viable y razonablemente seguro si sigues los pasos en orden: pre-check, remover paquetes incompatibles, upgrade, reboot, post-migración de servicios. El riesgo principal no es leapp mismo sino drivers de terceros y configs custom que asumís que funcionan pero no probaste.
Mi recomendación:
- Migrá con leapp si el servidor tiene config valiosa que quieres preservar y tienes un fin de semana para hacerlo.
- Reinstalá limpio si tienes tiempo y quieres un baseline conocido.
- Pagá ELS solo si la migración es imposible en el corto plazo y el costo del servidor justifica $1,500/año.
Después de migrar, planeá una segunda migración a Rocky 11 cuando RHEL/Rocky 11 salga. Esto no es la última vez que lo vas a hacer.
Preguntas frecuentes
¿Por qué CentOS 7 EOL: cómo migrar a Rocky Linux 9 o AlmaLinux 9 con leapp es relevante para sysadmins Linux?
Forma parte del flujo diario de administración. Los conceptos explicados se aplican directamente a servidores en producción y resuelven problemas reales que enfrentan sysadmins hispanohablantes.
¿Qué necesito para empezar con CentOS 7 EOL: cómo migrar?
Distribución Linux actualizada (Debian, Ubuntu, RHEL, Fedora o Arch), acceso root, y conexión a internet. Para producción: entorno de staging separado antes de aplicar cambios.
¿Cuáles son los errores más comunes con CentOS 7 EOL: cómo migrar?
Los tres más frecuentes: (1) saltar la lectura de logs, (2) aplicar cambios directos en producción sin probar, (3) olvidar permisos y ownership. La documentación y un plan de rollback siempre.
¿Cuándo usar CentOS 7 EOL: cómo migrar y cuándo una alternativa?
Esta solución es ideal para el caso descrito. Alternativas como Docker, Ansible o configuración manual pueden ser mejores según contexto: portabilidad, escala y reproducibilidad son los factores clave.
¿Cómo migro desde una configuración previa a CentOS 7 EOL: cómo migrar?
Documentar el estado actual, probar la nueva configuración en staging, validar funcionalmente, y aplicar en producción con rollback plan listo. Los posts de SoyLinux incluyen troubleshooting para los problemas más comunes.
Lee también
- Guía Fedora 44: Novedades, Instalación y Upgrade para Sysadmins Linux
- Configura VLANs en Linux con nmcli: Guía paso a paso para sysadmins
- Protege tu SSH: Guía esencial para configurar Fail2ban en Linux
- Guía Definitiva: Configura Kubernetes con kubeadm en Ubuntu para Sysadmins Linux
- Configura Prometheus y Grafana: Guía DevOps para SysAdmins Linux
