Guías y Manuales Sysadmin

Yum-Cron: actualizaciones automáticas y por email en Centos 6

single image

CentOS Logo

En Centos, como en cualquier otro sistema, cada cierto tiempo se publican actualizaciones, tanto por vulnerabilidades, como por nuevas versiones de los paquetes instalados.

Es importante tener el sistema actualizado, teniendo en cuenta que una gran parte de los accesos no autorizados a sistemas se debe a

paquetes vulnerables no actualizados. Por ello es vital comprobar regularmente si existen actualizaciones disponibles en nuestro Centos (en nuestro sistema en general), y posteriormente instalarlas.

Pero esta tarea debemos realizarla periódicamente, por lo que resulta bastante cómodo automátizar la comprobación de las actualizaciones disponibles (más todavía si se gestionan diversas máquinas) y que seamos notificados o bien sean instaladas.

Esto podemos lograrlo gracias a yum-cron.

Yum-cron es un daemon disponible en Centos y Fedora que utilizando un script cron comprueba diariamente si existen actualizaciones disponibles, y en caso de existir nos permite instalarlas, descargarlas simplemente, o enviarnos una notificación por email.

La instalación de yum-cron en Centos es sencilla:

  1. [root@srv /]# yum install yum-cron
  2. ...
  3. [root@srv /]#

Su archivo de configuración se encuentra en /etc/sysconfig/yum-cron. Editando este archivo podemos configurar el funcionamiento de yum-cron en nuestro sistema Centos.

  1. # Pass any given paramter to yum, as run in all the scripts invoked
  2. # by this package.  Be aware that this is global, and yum is invoked in 
  3. # several modes by these scripts for which your own parameter might not
  4. # be appropriate
  5. YUM_PARAMETER=
  6.  
  7. # Don't install, just check (valid: yes|no)
  8. CHECK_ONLY=no
  9.  
  10. # Check to see if you can reach the repos before updating (valid: yes|no)
  11. CHECK_FIRST=no
  12.  
  13. # Don't install, just check and download (valid: yes|no)
  14. # Implies CHECK_ONLY=yes (gotta check first to see what to download)
  15. DOWNLOAD_ONLY=no
  16.  
  17. # Error level, practical range 0-10, 0 means print only critical errors which
  18. # you must be told, 1 means print all errors, even ones that are not important
  19. # Level 0 is the default
  20. ERROR_LEVEL=0
  21.  
  22. # Debug level, practical range 0-10, higher number means more output
  23. # Level 1 is a useful level if you want to see what's been done and
  24. # don't want to read /var/log/yum.log
  25. # Level 0 is the default
  26. DEBUG_LEVEL=1
  27.  
  28. # randomwait is used by yum to wait random time
  29. # default is 60 so yum waits random time from 1 to 60 minutes
  30. # the value must not be zero
  31. RANDOMWAIT="60"
  32.  
  33. # if MAILTO is set and the mail command is available, the mail command 
  34. # is used to deliver yum output
  35.  
  36. # by default MAILTO is unset, so crond mails the output by itself
  37. # example:  MAILTO=root
  38. MAILTO=
  39.  
  40. # you may set SYSTEMNAME if you want your yum emails tagged differently
  41. # default is output of hostname command 
  42. # this variable is used only if MAILTO is set too
  43. #SYSTEMNAME="" 
  44.  
  45. # you may set DAYS_OF_WEEK to the days of the week you want to run 
  46. # default is every day 
  47. DAYS_OF_WEEK="0123456" 
  48.  
  49. # which day should it do cleanup on?  defaults to 0 (Sunday).  If this day isn't in the 
  50. # DAYS_OF_WEEK above, it'll never happen
  51. CLEANDAY="0"
  52.  
  53. # set to yes to make the yum-cron service to wait for transactions to complete
  54. SERVICE_WAITS=yes
  55.  
  56. # set maximum time period (in seconds) for the yum-cron service to wait for
  57. # transactions to complete.  The default is 300 seconds (5 minutes)
  58. SERVICE_WAIT_TIME=300

De las diversas variables que yum-cron nos permite configurar, cabe destacar 4:

  • CHECK_ONLY (yes | no): permite indicar si solo se comprueba si existen descargas pero no realizar más acciones (sin instalarlas o descargarlas)
  • DOWNLOAD_ONLY (yes | no): en el caso de no solo comprobar si existen actualizaciones (CHECK_ONLY=NO), permite descargar e instalar, o solo descargar las actualizaciones disponibles.
  • MAILTO (email | usuario): Sirve para enviar un correo de notificación con el resultado de las acciones realizadas cada vez que se ejecuta yum-cron.
  • DAYS_OF_WEEK (“0123456”): Utilizado para indicar qué días de la semana se efectuará la comprobación.

La configuración por defecto de yum-cron comprueba a diario si existen actualizaciones y en tal caso las descarga e instala sin enviar notificaciones por email.

A pesar de que esta configuración puede resultar muy cómoda al realizar la instalación de actualizaciones de forma automática en Centos, no es recomendable en entornos en producción.
Personalmente prefiero conocer previamente qué paquetes tienen actualizaciones disponibles y comprobar en un entorno de pruebas (llegado el caso) cómo van a interferir en el funcionamiento de los servicios configurados para evitar conflictos y perdida de funcionalidades.

Por ello vamos a configurar yum-cron para que compruebe si existen actualizaciones y en tal caso, nos lo notifique por correo electrónico.

Para ello vamos a editar el archivo de configuración /etc/sysconfig/yum-cron y modificamos los parámetros CHECK_ONLY y MAILTO:

  1. ...
  2. CHECK_ONLY=yes
  3.  
  4. MAILTO=sysadm@aradaen.com
  5. ...

Una vez guardados los cambios, solo nos queda ejecutarlo:

root@server ~]# service yum-cron start
Enabling nightly yum update:                               [  OK  ]
[root@server ~]# 

De este modo ya tenemos configurado en nuestro sistema yum-cron, que nos notificará por email automáticamente las actualizaciones disponibles en nuestro sistema Centos.

Escribir comentario

Tu email no será publicado.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Otras noticias de interés