Actualización de quijote a CentOS8
Actualiza la instancia quijote a CentOS 8 garantizando que todos los servicios previos continúen funcionando y detalla en la tarea los aspectos más relevantes.
- En el caso de que la instancia no sea recuperable en algún punto, se tiene que volver a crear una instancia de CentOS 7 y realizar la actualización de nuevo. Lo recomendable en este caso sería crear una instantánea de volumen antes de comenzar y en el caso de tener un error irrecuperable, crear un nuevo volumen a partir de la instantánea, eliminar la instancia quijote y crear una nueva con el nuevo volumen. Una vez arrancada la nueva instancia se puede eliminar el antiguo volumen y las instantáneas asociadas.
- Nota: Aunque aparezca una advertencia de que se puede corromper el volumen al crear una instantánea cuando está en uso, se supone que LVM (el sistema sobre el que se está usando los volúmenes en este caso) soporta la creación de instantáneas en caliente (se supone ;) )
El primer paso que debemos dar es comprobar los repositorios epel de nuestra maquina.
yum install epel-release -y
Instalamos las herramientas yum-utils.
yum install yum-utils
Instalamos rpmconf, lo usaremos para verificar confilctos en ficheros de configuración.
yum install rpmconf
Si queremos instalar la nueva versión del fichero de configuración.
rpmconf -a
Limpiamos los paquetes no necesarios:
package-cleanup --leaves
package-cleanup --orphans
Instalamos el gestor de paquetes dnf.
yum install dnf
Los dos gestores de paquetes pueden convivir, pero es mejor que nos quedemos solo con dnf (y eliminamos yum, las dependencias y su directorio):
dnf -y remove yum yum-metadata-parser
rm -Rf /etc/yum
Comenzamos con la actualización de versión, de CentOS7 a CentOS8 y resolvemos los problemas con los paquetes al actualizar a CentOS8.
dnf upgrade
si tenemos errores del estilo: "el archivo * entra en conflicto con el archivo del paquete *".
podemos intentar la actualización con la opción –allowerasing, que sirve para reemplazar automáticamente los paquetes con conflictos:
dnf upgrade --best --allowerasing
o usando la opción –skip-broken para eliminar los paquetes problemáticos:
dnf upgrade --best --allowerasing --skip-broken
Si tenemos algun problema con dependencias de algun paquete las borramos manualmente y (ej:dnf remove python3) y volvemos a upgradear con dnf.
A continuación ya podemos instalar el paquete de lanzamiento de Centos8:
dnf install http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-linux-repos-8-2.el8.noarch.rpm http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-linux-release-8.3-1.2011.el8.noarch.rpm http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-2.el8.noarch.rpm
Actualizamos el repositorio EPEL.
dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Eliminamos los ficheros temporales.
dnf clean all
Eliminamos el viejo kernel para CentOS7 e instalaremos el nuevo kernel para CentOS8
y ahora eliminamos el núcleo antiguo del kernel de CentOS 7 (si en este paso tenemos errores, realmente seguirá instalado el kernel de centos 7 y no habremos instalado el kernel de centos 8):
rpm -e `rpm -q kernel`
Eliminamos paquetes conflictivos (como las herramientas systemv):
rpm -e --nodeps sysvinit-tools
Si recibimos errores al ejecutar el comando anterior para eliminar el kernel :
rpm -e `rpm -q kernel`
comprobamos si seguimos teniendo errores y conflictos en paquetes; si es así, procuraremos eliminarlos para evitar los problemas (aunque en algunos casos esto es una solución muy arriesgada, sobre todo en servidores en producción).
Otra opción es intentar eliminar el kernel viejo así:
dnf remove --oldinstallonly --setopt installonly_limit=1 kernel
o simplemente así:
dnf remove kernel
Comenzamos la actualización a Centos8
Lanzamos actualización del sistema a Centos8:
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
Si nos encontramos con algunos errores tambien podemos ejecutar:
dnf -y --releasever=8 --allowerasing --skip-broken --setopt=deltarpm=false distro-sync
Instalamos el nuevo kernel para Centos8
Ejecutamos instalación del kernel
dnf -y install kernel-core
Aunque puede no ser necesario, si queremos estar seguros de que está instalado de forma correcta, primero lo desinstalamos y lo volvemos a instalar
rpm -e kernel-core
dnf -y install kernel-core
Si nuevamente tenemos problemas ejecutaremos:
dnf -y install kernel-core --best --allowerasing --skip-broken
Si no hemos hemos ejecutado los comandos y no hemos tenido mas problemas daremos por hecho que el kernel que tenemos ahora es de Centos8.
Instalamos el paquete minimal de CentOS8 y actualizamos grupos
dnf -y groupupdate "Core" "Minimal Install"
Si tuvimos problemas:
dnf -y groupupdate "Core" "Minimal Install" --allowerasing --skip-broken
Si tenemos problemas con los paquetes de yum en este punto deberemos volver atras, en la parte donde borramos yum. Al borrarlo este error desaparecerá.
Comprobación de que Centos8 y su kernel están instalados correctamente
[centos@quijote ~]$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
[centos@quijote ~]$ cat /etc/redhat-release
CentOS Linux release 8.3.2011
[centos@quijote ~]$ uname -r
4.18.0-240.10.1.el8_3.x86_64
¡Listo! ya tenemos upgradeada nuestra maquina a Centos8.
Escrito por Fran Madueño Estudiante de administración de sistemas operativos
(Dos Hermanas, Sevilla).