GNU/Linux >> Tutoriales Linux >  >> Linux

Preparación para aplicar actualizaciones en Red Hat Linux

Objetivo

Nuestro objetivo es garantizar que la actualización del sistema operativo se realice sin problemas y sin errores.

Sistema operativo y versiones de software

  • Sistema operativo: Red Hat Enterprise Linux 6+

Requisitos

Acceso privilegiado a los sistemas

Dificultad

FÁCIL

Convenios

  • # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
  • $ – comandos de Linux dados para ser ejecutados como un usuario regular sin privilegios

Introducción

Mantener el sistema actualizado es una tarea diaria para un administrador de sistemas, así como para un usuario de escritorio. Al aplicar el software disponible más reciente (estable) en el sistema, podemos aprovechar las funciones más recientes y estaremos más protegidos de los problemas de seguridad y, con suerte, sufriremos menos errores. Para actualizar el sistema necesitará yum configurado repositorios que actúan como fuente del software actualizado.

Si se sienta al lado de la máquina que está ejecutando el sistema operativo que se actualizará, puede actuar fácilmente si algo sale mal durante la actualización, como verificar la salida en la terminal o iniciar un sistema en vivo si el actualizado no regresa de reiniciar, pero este no es siempre el caso. Piense en un centro de datos con cientos o miles de máquinas (virtuales), o simplemente una PC física que debe actualizar de forma remota.

Hay pasos simples que podemos realizar para preparar el sistema para la actualización y posiblemente eliminar cualquier problema que pueda poner en peligro una actualización exitosa.

Proceso de actualización

Al realizar una actualización incondicional (que significa "actualizar todo"), yum obtendrá todos los metadatos de los repositorios disponibles y calculará todos los paquetes que se actualizarán contra las rpm base de datos que contiene todos los metadatos sobre los paquetes instalados en el sistema.

El proceso de actualización también calcula todas las dependencias de los paquetes actualizados, puede reemplazar paquetes antiguos y eliminar imágenes antiguas del kernel de acuerdo con su configuración. La cantidad de imágenes del kernel que se deben conservar se establece en /etc/yum.conf archivo de configuración, y es 3 por defecto:

installonly_limit=3


Después de calcular todas las modificaciones necesarias, yum proporciona una lista extensa de todos los paquetes que se actualizarán, eliminarán o instalarán para las dependencias, de la misma manera que lo hace al instalar o actualizar paquetes específicos.

En una sesión de actualización interactiva yum proporcionará un resumen de los paquetes que se modificarán, así como un cálculo del tamaño de los datos que se deben descargar para la actualización, como se muestra a continuación:

Resumen de la actualización interactiva de yum

Después de examinar los resultados, podemos decidir si iniciamos la actualización o la cancelamos. Como yum actualizará todo para lo que pueda encontrar actualizaciones, es posible que deseemos eliminar los paquetes innecesarios de antemano. También podemos notar un paquete marcado para actualización con una versión bloqueada que debe excluirse de la actualización.

Después de la aprobación, yum descargará todos los paquetes nuevos y los instalará/actualizará uno por uno. Cuando se complete, verificará la integridad de los paquetes instalados/actualizados, limpiará los archivos innecesarios. También proporciona comentarios durante el proceso, proporcionando una línea de texto para cada paso, así como un código de salida que indica si la actualización fue exitosa o si surgió algún problema. También cancelará el proceso de actualización si surge un problema que parece crítico desde la perspectiva del sistema consistente, pero hay ocasiones en las que ya es demasiado tarde, por lo que evitar que ocurran problemas de actualización es un mejor enfoque.

Espacio en disco

yum caché

Del proceso descrito anteriormente, podríamos suponer que necesitamos algo de espacio en disco para el proceso de actualización:

  • Los metadatos de todos los repositorios configurados deben almacenarse hasta que finalice el cálculo de todos los paquetes (y sus dependencias) para actualizarlos.
  • rpm los paquetes que constituyen la actualización en sí deben almacenarse localmente hasta que se instalen correctamente.

Estos datos, llamados yum cache solo se necesita durante la actualización, pero puede ocupar un espacio considerable en el disco. La ubicación predeterminada para este caché es /var/cache/yum directorio. No hace falta decir que si no hay suficiente espacio para almacenar todos los datos necesarios, el proceso de actualización fallará. Algunas descargas incompletas se eliminarán, pero es posible que no se libere todo el espacio, lo que hace que un sistema falle en la actualización y su volumen contenga /var/cache casi lleno.

Muchas instalaciones almacenan su /var directorio en un volumen dedicado al registro, ya que el lugar predeterminado para los archivos de registro es /var/log en la mayoría de las distribuciones, y la mayoría de las aplicaciones que funcionan bien dejarán de funcionar o incluso fallarán si no pueden escribir sus archivos de registro. Así que llenar el volumen en el que están escribiendo es algo malo .

Cuantos más paquetes deban actualizarse y más repositorios tengamos, más espacio ocupará temporalmente la actualización. Calcular este espacio de actualización a actualización es difícil, pero se puede probar con la solución de prueba que se describe más adelante si tenemos una máquina de prueba con el contenido de software exacto. Para un ejemplo en tiempo real, la actualización de RHEL 7.1 a 7.5 (instalación de escritorio con Gnome) puede ocupar 4 GB de espacio de caché, pero la instalación de algunas correcciones en un sistema que solo tiene uno o dos meses de antigüedad ocupará solo algunos MB.

Para comprobar cuánto espacio tenemos, podemos usar el df comando:

# df -h /var/
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vg_sys-var  6.0G  1.7G  4.4G  28% /var


En el ejemplo anterior tenemos 4,4 GB de espacio libre, que será suficiente dado que el servidor se actualizó hace solo unos meses. Para liberar espacio, un paso trivial sería borrar el yum cache ya almacenado (tal vez en la última actualización). Para verificar cuánto espacio ocupa el caché en este momento, podemos usar du :

# du -mcd 1 /var/cache/yum
1103    /var/cache/yum/x86_64
1103    /var/cache/yum
1103    total


Los números anteriores están en MB, por lo que el yum cache en este ejemplo ocupa aproximadamente 1 GB de espacio en disco y ocupa la mayor parte del espacio en el /var volumen.

Borrar el caché

Podemos borrar todo el caché con el siguiente comando:

yum clean all

Pero como yum nos notifica en la salida del comando anterior en las versiones de RHEL 7, puede haber datos huérfanos de repositorios eliminados o deshabilitados, lo que probablemente sucederá después de actualizaciones menores de lanzamiento, en cuyo caso podemos borrar los datos a mano de forma segura:

rm -rf /var/cache/yum/*

Es posible que obtengamos más espacio para la actualización borrando otros datos almacenados en el volumen, como comprimir/eliminar archivos de registro antiguos, mover archivos grandes a otros volúmenes o ampliar el tamaño del volumen.

Mover el caché

Para trabajar con las posibilidades de yum , si tenemos muy poco espacio en disco, no podemos borrar nada más y no podemos agregar más espacio al volumen, podemos mover la ubicación del yum cache a otro volumen con más espacio libre. Podemos configurar la ubicación del caché en el yum.conf archivo de configuración mencionado anteriormente. Considere la configuración predeterminada:

cachedir=/var/cache/yum/$basearch/$releasever

Cambiando la ruta antes de $basearch la próxima operación de yum funcionará con la misma estructura de directorios, pero en una ruta diferente, con suerte con más espacio libre para la actualización. También podemos mover el caché a otro volumen moviendo todo el directorio:

mv /var/cache/yum /extended_data_volume/


Y creando un enlace simbólico en la ubicación original que apunte al nuevo lugar:

ln -s /extended_data_volume/yum /var/cache/yum


Es aconsejable saber que la actualización no fallará en un error trivial como poco espacio en disco. En un sistema grande, los administradores de sistemas implementan herramientas de monitoreo como Nagios que pueden informar sobre un espacio de disco bajo en todas las máquinas, lo que hace que este paso consuma mucho menos tiempo y sea propenso a errores.

Errores de red

Si hay problemas con la conectividad entre los repositorios y la máquina que realiza la actualización, la actualización puede fallar. Esto solo puede ocurrir en los metadatos, o en la etapa de descarga de nuevos rpm, y no dañará el sistema. Puede iniciar el proceso de actualización nuevamente cuando se resuelva el problema de la red.

Por otro lado, si la actualización se inicializa desde una sesión interactiva, en caso de interrupción de la red, la conexión puede interrumpirse, lo que deja a la máquina de actualización sin que el administrador responda las preguntas yum. puedo preguntar. Si la etapa de instalación/actualización del paquete ya comenzó, continuará desatendido y puede fallar o completarse si lo hiciera de otra manera. Después de la reconexión, el proceso se puede seguir en el /var/log/yum.log .

Yum carrera en seco

Aparte de la falta de espacio en disco y los problemas de red, la actualización en muchos casos puede fallar debido a dependencias de paquetes no resueltas. Estos deben resolverse con herramientas que puedan calcular y manejar las dependencias de los paquetes, pero sería útil saber que habrá problemas antes de la actualización real (y, por lo tanto, no desperdiciar el siempre demasiado corto tiempo de inactividad del sistema). Para obtener esta valiosa información, podemos ejecutar el proceso de actualización como lo haría con la actualización real, pero detenerlo antes de que se haya realizado la descarga, instalación o actualización del paquete real.

Alrededor de Redhat 6.6 se introdujo una nueva opción que causará yum para asumir "No" a todas las preguntas que surjan durante la actualización, incluida la aprobación antes de la etapa real de manipulación del paquete y, como consecuencia, no se necesita interacción real ejecutar una prueba:

yum update --assumeno

Esta puede ser la herramienta ideal para proporcionar una ejecución en seco de la próxima actualización, incluidos los paquetes que se actualizarán y cualquier error que pueda ocurrir. Considere el siguiente bash simple guión:

#!/bin/bash
yum update --assumeno &> $(hostname).yum.dryrun.$(date '+%Y-%m-%d').out
exit $?


La secuencia de comandos anterior se puede ejecutar automáticamente y proporcionará un informe de texto de la ejecución de prueba, así como un código de salida general que indica cualquier problema. No es necesario guardar la salida en el sistema de archivos local. El destino de la redirección de salida puede ser un sistema de archivos de red, o el informe puede publicarse en algún servidor central de informes, puede ser recopilado por otros scripts o aplicaciones. Los informes se pueden publicar y distribuir entre otros departamentos de TI para su aprobación, de esta manera todos los involucrados pueden ver exactamente qué paquetes se actualizarán y a qué versión.

La ejecución de prueba se puede programar para que se ejecute en un marco de tiempo determinado (quizás por la noche para afectar menos el rendimiento del sistema) con cron , o ejecutado desde una fuente central con una configuración de títeres. El código de salida también se puede almacenar y procesar mediante monitoreo o facter , para agregar los posibles resultados de la próxima actualización antes de continuar.

Conclusión

Incluso con una o varias computadoras, debemos recopilar información antes de iniciar una actualización de todo el sistema operativo, solo para estar seguros. Un día habrá un problema, y ​​es mucho menos estresante si puede resolverlo antes de que tenga un impacto en el trabajo real de una máquina determinada. A mayor escala, simplemente no es posible sentarse al lado de cada servidor o escritorio y apoyarlo con su presencia con la esperanza de que esto ayude a que la actualización se ejecute sin problemas.

Conocer las etapas del proceso de actualización, los escollos, así como la solución a ellos, es esencial para actualizaciones exitosas. Comenzar la próxima etapa de actualización de toda su infraestructura con la confianza de que no habrá problemas es hacerlo con estilo.


Linux
  1. Cómo manejar un pánico en el kernel de Linux

  2. 8 consejos para una automatización confiable del sistema Linux

  3. 3 comandos útiles de Linux para administradores de sistemas

  4. ¿Cómo obtener Red Hat Enterprise Linux gratis?

  5. Cómo montar una nueva partición en Red Hat Linux

Pasos de instalación de Red Hat Enterprise Linux (RHEL) 8 con capturas de pantalla

Los mejores comandos de Linux para administradores de sistemas

Algunas herramientas útiles para administradores de sistemas Linux

Trabajar con el kernel en tiempo real para Red Hat Enterprise Linux

Mi viaje hacia la administración del sistema Linux

10 ejemplos de exclusión de Yum para omitir paquetes para la actualización de Yum de Linux (cómo excluir actualizaciones del kernel de Yum)