Automatizar actualizaciones con yum-updatesd y yum-cron en CentOS

23 12 2011
Actualizaciones automáticas

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:

1
# yum install yum-updatesd

yum-updatesd dispone de varios métodos de notificación:

  • syslog
  • email
  • 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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[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:

1
# service yum-updatesd start

Y para que se inicie en cada inicio del servidor:

1
# chkconfig yum-updatesd on

Para desactivar es realizar la operación inversa a yum-updatesd:

1
2
#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-cron se habilita como si fuera cualquier otro daemon:
1
2
3
# 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:

1
# chkconfig yum-cron on
Este paso no es necesario ya que cron ejecutara igualmente la tarea programada.
Si es necesario iniciar por primera vez yum-cron para que se cree el archivo en cron-daily con un flag en /var/lock/subsys/yum-cron:
1
# /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.

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)


Como instalar GIT en un servidor CentOS

8 07 2010

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número archivos de código fuente.

Generalmente es algo que los desarrolladores web deberían usar para proyectos en grupo o creación de código colaborativo. Si en tu hospedaje necesitas tenerlo e instalarlo, es algo sencillo de hacer.

En el momento de publicar este artículo la última versión es 1.7.8.4, puede variar cuando tu realices estos pasos, para ver el último código disponible accede a http://kernel.org/pub/software/scm/git/

Para instalarlo en CentOS, concretamente lo he probado en Centos 5.5, haz lo siguiente:

1 – Primero debes instalar las dependencias con:

1
# yum install gettext-devel expat-devel curl-devel zlib-devel openssl-devel

2 – Baja el último código disponible con wget:

1
# wget http://git-core.googlecode.com/files/git-1.7.8.4.tar.gz

3 – Descomprime el código fuente:

1
# tar xvfz git-*.tar.gz

4 – Muevete a la carpeta descomprimida:

1
# cd git-*

5 – Compila el código fuente

1
# make prefix=/usr/local/ all

6 – Instala GIT

1
# make prefix=/usr/local/ install

7 – Eliminar los archivos generados y descargados

1
# cd ..; rm -rf git-*
VN:F [1.9.17_1161]
Rating: 6.3/10 (4 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)


Un granito de libertad cada 15 segundos

4 12 2009

Cada 15 segundos, una nueva línea es escrita en el kernel Linux.

Y no lo digo yo, sino el  desarrollador/mantenedor del Kernel Greg Kroah-Hartman:

We add 11,000 lines, remove 5500 lines, and modify 2200 lines every single day.

Haciendo las matemáticas, es una simple regla de tres. Si se escriben 11 mil, pero 5500 son borradas y las modificadas no son nuevas. Nos quedan 5500 y como cada día tiene 24 horas * 60 min * 60 seg = 84600 segundos, pues nos quedan 84600/5500 = 15.38 segundos para escribir una línea. Truncando 15 segundos.

Vía: Entrevista a Greg Kroah-Hartman realizada por How Software is Built

VN:F [1.9.17_1161]
Rating: 4.5/10 (2 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)