Preparación para aplicar actualizaciones en Red Hat Linux

Preparación para aplicar actualizaciones en Red Hat Linux

Objetivo

Nuestro objetivo es asegurar que la actualización del sistema operativo se ejecute 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

Convenciones

  • # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
  • ps - Dados los comandos de Linux para ser ejecutados como un usuario regular no privilegiado

Introducción

Mantener el sistema actualizado es una tarea todos los días para un sysadmin, así como un usuario de escritorio. Al aplicar el último software disponible (estable) en el sistema, podemos aprovechar las últimas funciones, y estaremos más protegidos de los problemas de seguridad y, con suerte, sufriremos menos de los errores. Para actualizar el sistema que necesitará configurado beque Repositorios que actúan como la fuente del software actualizado.

Si se sienta al lado de la máquina que ejecuta el sistema operativo para actualizarse, puede actuar fácilmente si algo sale mal durante la actualización, como verificar la salida en el terminal o arrancar a 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 en una PC física que debe actualizar de forma remota.

Hay simples pasos que podemos realizar para preparar el sistema para la actualización, y posiblemente borrar cualquier problema que ponga en peligro una actualización exitosa.



Proceso de actualización

Al realizar una actualización incondicional (que significa "actualizar todo"), beque obtendrá todos los metadatos de los repositorios disponibles y calculará todos los paquetes que se actualizarán contra el 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 los paquetes antiguos y eliminar las imágenes antiguas del núcleo de acuerdo con su configuración. El número de imágenes de núcleo para mantener se establece en el /etc/yum.confusión archivo de configuración, y es 3 de forma predeterminada:

installonly_limit = 3


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

En una sesión de actualización interactiva beque Proporcionará un resumen de los paquetes que se modificarán, así como el cálculo del tamaño de los datos que se debe 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 lo que pueda encontrar actualizaciones, es posible que deseemos eliminar paquetes innecesarios de antemano. También podemos notar un paquete marcado para la actualización que estamos bloqueados por la versión que debemos excluirse de la actualización.

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

Espacio del disco

yum caché

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

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

Estos datos, llamados yum caché Solo se necesita durante la actualización, pero puede ocupar un espacio de disco sustancial. La ubicación predeterminada para este caché está en el /var/caché/yum directorio. No hace falta decir que si no hay suficiente espacio para almacenar todos los datos necesarios, el proceso de actualización fallará. Se eliminarán algunas descargas inacabadas, pero no todo el espacio puede ser liberado, lo que termina con un sistema fallado en la actualización y que su volumen contenga /var/caché casi lleno.

Muchas instalaciones almacenan su /var Directorio en un volumen dedicado a la 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 de bienestar dejarán de funcionar o incluso se bloquean si no pueden escribir sus archivos de registro. Así que llenar el volumen al que están escribiendo es un cosa mala.

Cuantos más paquetes deben actualizarse, y cuanto más repositorios tengamos, más espacio ocupará la actualización temporal. Calcular este espacio de la actualización a la actualización es difícil, pero se puede probar con la solución de ejecución seca descrita más adelante si tenemos una máquina de prueba con el contenido de software exacto. Para un ejemplo en tiempo real, 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 a un sistema que solo está desactualizado por uno o dos meses ocupará unos pocos MB.

Para verificar cuánto espacio tenemos, podemos usar el df dominio:

# DF -H/VAR/FileSystem Size Utilizado disponible Use% montado en/dev/mapper/vg_sys -var 6.0G 1.7G 4.4G 28% /var 
Copiar


En el ejemplo anterior tenemos 4.4 GB de espacio libre, lo que será suficiente dado que el servidor se actualizó hace solo unos meses. Para liberar espacio, un paso trivial sería despejar el yum caché ya almacenado (tal vez en la última actualización). Para verificar cuánto espacio ocupa un 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 
Copiar


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



Limpiar el caché

Podemos borrar todo el caché con el siguiente comando:

yum limpio todo

Pero como beque Nos notifica en la salida del comando anterior en las versiones RHEL 7, puede haber datos huérfanos de repositorios eliminados o discapacitados, lo que probablemente sucederá después de la liberación menor de Ugrades, en cuyo caso podemos borrar de forma segura los datos a mano:

rm -rf/var/cache/yum/*

Podemos obtener más espacio para la actualización al borrar otros datos almacenados en el volumen, como comprimir/eliminar los archivos de registro antiguos, mover archivos grandes a otros volúmenes o extender el tamaño del volumen.

Moviendo el caché

Trabajar con las posibilidades de beque, Si estamos realmente bajos en el espacio en el disco, no podemos despejar nada más y no podemos agregar más espacio al volumen, podemos mover la ubicación del yum caché a otro volumen con más espacio libre. Podemos configurar la ubicación de la memoria caché en el beque.confusión Archivo de configuración mencionado anteriormente. Considere la configuración predeterminada:

Cachedir =/var/cache/yum/$ basearch/$ versión

Cambiando la ruta antes $ Basearch La próxima operación YUM funcionará con la misma estructura de directorio, 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 crear un enlace simbólico en la ubicación original que apunta 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 el espacio bajo en disco. En un sistema de gran sistema, sistemas implementan herramientas de monitoreo, como Nagios, que pueden informar un espacio de bajo disco en todas las máquinas, lo que hace que este paso sea mucho menos tiempo y 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 suceder en los metadatos, o en la nueva etapa de descarga de RPMS, y no romperá el sistema. Puede comenzar el proceso de actualización nuevamente cuando se resuelve el problema de la red.

Por otro lado, si la actualización se inicializa desde una sesión interactiva, en la interrupción de la red, la conexión puede romperse, dejando a la máquina de actualización sin administrador para responder las preguntas beque puedo preguntar. Si la etapa de instalación/actualización del paquete ya se inició, continuará desatendida y puede fallar o completar si lo haría de otra manera. Después de la reconexión, el proceso se puede seguir en el /var/log/yum.registro.



Yum Run Dry

Además de un espacio de disco y problemas de red insuficientes, la actualización en muchos casos puede fallar en dependencias de paquetes no resueltos. 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 pierde el tiempo de inactividad siempre demasiado corto del sistema). Para obtener esta valiosa información, podemos ejecutar el proceso de actualización, ya que ejecutaría la actualización real, pero deténgase antes de que se haya realizado cualquier descarga, instalación o actualización de cualquier paquete real.

Alrededor de Redhat 6.6 Se introdujo una nueva opción que causará beque Asumir "no" a cada pregunta que surja 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, ejecute una ejecución seca:

Actualización de YUM --Ssumeno

Esta puede ser la herramienta ideal para proporcionar una ejecución seca de la próxima actualización, incluidos los paquetes que se actualizarán, y cualquier error que pueda ocurrir. Considere lo siguiente simple intento guion:

#!/bin/bash yum actualización --ssumeno &> $ (nombre de host).beque.dryrun.$ (fecha '+%y-%m-%d').salir de salida $? 
Copiar


El script anterior se puede ejecutar automáticamente y proporcionará un informe de texto de la ejecución seca, así como un código de salida general que indica cualquier problema. La salida no necesita ser guardada en el sistema de archivos local. El objetivo de la redirección de salida puede ser un sistema de archivos de red, o el informe se puede publicar en algún servidor de informes centrales, 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.

Se puede programar la ejecución seca para ejecutarse en un marco de tiempo determinado (tal vez 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 unas pocas computadoras, debemos recopilar información antes de comenzar una actualización de todo el sistema operativo, solo para estar en el lado seguro. 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 admitirlo con su presencia con la esperanza de que esto ayude a la actualización a funcionar sin problemas.

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

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Archivos de configuración de Linux: los 30 principales más importantes
  • ¿Puede Linux obtener virus?? Explorando la vulnerabilidad de Linux ..
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Descarga de Linux
  • Cómo actualizar Firefox en Linux
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • La mejor distribución de Linux para desarrolladores
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?