CentOS es una distribución de las consideradas como más estables. Aunque sea bastante estable, no implica que no necesite de actualizaciones con regularidad debido a incidencias críticas en algún paquete de software o bien debido avulnerabilidades.
Para evitar consumir tiempo a los administradores de sistemas comprobando regularmente si se necesita alguna actualización, existen herramientas que se encargan de realizar esta tarea de forma períodica.
Existen dos alternativas en CentOS:
- yum-updatesd es un demonio notificador de actualizaciones que puedan ser aplicadas al sistema
- yum-cron es un paquete con los archivos necesarios para hacer que el comando yum update se establezca como un trabajo de cron.
Generalmente yum-updatesd es más recomendable para escritorios y yum-cron para servidores, por este motivo coexisten ambos.
yum-cron es algo más sencillo pero no dispone de muchas opciones de configuración, aunque yum-updatesd es más configurable, pero parece tener algunas fugas y acumulaciones de memoria/CPU cuando se ejecuta durante bastante tiempo en servidores.
Configurando yum-updatesd
Podemos instalarlo con:
# yum install yum-updatesd
yum-updatesd dispone de varios métodos de notificación:
- syslog
- dbus
Estas notificaciones se configuran mediante el archivo de configuración /etc/yum/yum-updatesd.conf. Este archivo dispone de una única sección “main” que define todas las opciones de configuración globales. Las opciones disponibles son las siguientes:
- run_interval Número de segundos a esperar entre comprobaciones de actualizaciones disponibles.
- updaterefresh Número mínimo de segundos entre para actualizar la información de actualizaciones para evitar acceder al servidor con demasiada frecuencia.
- emit_via Lista de maneras para emitir una notificación de actualización. Los valores válidos son: ’email’, ‘dbus’ y ‘syslog’.
- do_update Opción booleana para decidir si las actualizaciones deberían ser o no aplicadas. Por defecto falso.
- do_download Opción booleana para decidir si las actualizaciones deberían o no ser descargadas automáticamente. Por defecto falso.
- do_download_deps Opción booleana para automáticamente descargar las dependencias de paquetes que necesitan actualizarse también. Por defecto falso.
Opciones de notificacion por email
- email_to Lista de direcciones email para enviar las actualizaciones de notificación. Por defecto ‘root@locahost’.
- email_from Direcciones de email desde donde enviar las notificaciones de actualización. Por defecto ‘yum-updatesd@localhost’.
- smtp_server Servidor SMTP para usar en el envío de email, cadena de host o host:puerto. Por defecto ‘localhost:25’.
Opciones de notificacion por Syslog
- syslog_facility La instalación de syslog que debería ser usada. Por defecto ‘DAEMON’.be used. Defaults to ‘DAEMON’.
- syslog_level Nivel de los mensajes en syslog. Por defecto ‘WARN’.
Ejemplo de configuración
Un ejemplo de configuración posible para /etc/yum/yum-updatesd.conf donde cada 8 horas comprobamos actualizaciones sin instalarlas, pero descargandolas y notificamos si existe alguna por email puede ser:
[main]
# how often to check for new updates (in seconds)
run_interval = 28800
# how often to allow checking on request (in seconds)
updaterefresh = 3600
# how to send notifications (valid: dbus, email, syslog)
emit_via = email
# should we listen via dbus to give out update information/check for
# new updates
dbus_listener = yes
# who to send the email notifications to
email_to = tuemail@tudominio.com
# who send the notifications
email_from = yumupdates@tudominio.com
# automatically install updates
do_update = no
# automatically download updates
do_download = yes
# automatically download deps of updates
do_download_deps = yes
Después de configurar el servicio, lo iniciaremos con:
# service yum-updatesd start
Y para que se inicie en cada inicio del servidor:
# chkconfig yum-updatesd on
Para desactivar es realizar la operación inversa a yum-updatesd:
#service yum-updatesd stop
#chkconfig --del yum-updatesd
Nota: Recuerda que una vez desactivado no se notificará ningún tipo de actualización, y debe por tanto realizarse de forma manual.
Configurando yum-cron
# yum install yum-cron
# yum chkconfig yum-cron on
# service yum-cron start
Esto creara un archivo /etc/cron.daily/0yum.cron que será ejecutado diariamente a la hora programada.
Aunque se trata como daemon, en realidad no lo es, sino que es un script que se ejecuta diariamente y limpia las actualizaciones semanalmente. Es fácil comprobar con chkconfig –list que yum-cron esta en la lista, pero desahabilitado para todos los niveles de ejecución. Puede activarse si se desea con:
# chkconfig yum-cron on
# /etc/init.d/yum.cron start
Nota: Es importante recalcar que algunos paquetes como los del kernel requieren de reinicio para aplicar las nuevas actualizaciones y yum-updatesd y yum-cron no implican reiniciar el sistema, por lo que recae esta ultima atencion al administrador del sistema.