Programar actualizaciones en Linux con yum-cron y dnf-automatic
Si eres un usuario habitual de sistemas con Red Hat Enterprise Linux o similares, como Centos o Fedora, te habrás dado cuenta, que, al pasar unas semanas sin acceder a una máquina, cuando quieres instalar o actualizar el sistema, éste te recomienda instalar la herramienta yum-cron
o bien dnf-automatic
, depende lo moderna que esta sea.
Tal y como sugiere el nombre, yum-cron
, se encarga de la programación de tareas de YUM en el sistema. Es bastante fácil de usar. Ya que simplemente modificando su fichero de configuración nos permite adaptarlo a nuestro gusto. Con dnf-automatic
, más de lo mismo.
Instalación de yum-cron
Su instalación no tiene nada de especial, ya que es un paquete que se encuentra en los repositorios principales, en versiones como RHEL 6 o RHEL7, de nuestra distribución favorita:
sudo dnf -y install yum-cron
Este comando es realmente un script escrito en Python, que podemos examinar cuando queramos. Se ubica, una vez instalado, en la carpeta /sbin
En el caso de utilizar RHEL 8 o la última versión de Rocky Linux, debemos utilizar la herramienta dnf-automatic
sudo dnf install dnf-automatic
Tal y como se muestra en la imagen:
Configuración y primeros pasos
Una vez instalado el fichero de configuración se encuentra en la ruta /etc/yum/yum-cron.conf
. En este archivo se indica la ejecución diaria de las tareas de cron, aunque también se puede indicar que las ejecute de inmediato.
Si queremos que se apliquen las actualizaciones:
apply_updates = yes
O si queremos que se apliquen de inmediato:
random_sleep = 0
En el caso de dnf-automatic
el fichero de configuración se encuentra en /etc/dnf/automatic.conf
Podemos ver el historial de cambio consultando el fichero /var/log/yum.log
Si queremos saber un poco más
Aunque parece lo contrario las tareas de yum-cron
no afectan al crontab
del usuario root. Si queremos ver su programación debemos consultar la carpeta /etc/cron.daily
y el fichero 0yum-daily.cron
También podemos configurar /etc/yum/yum-cron-hourly.conf
, para que se ejecute cada hora.
Si solo deseamos instalar las actualizaciones de seguridad, cosa que recomiendo, en el fichero de configuración que hemos indicado antes, descomentamos el campo:
# minimal-security = yum --security update-minimal
Siempre podemos consultar su página de man para obtener más información.
Si gestionamos un amplio parque de servidores, creo que es buena idea añadir este servicio y su fichero de configuración en una clase de puppet; para que así tengamos nuestros entornos siempre actualizados. Al igual que se podría hacer algo similar con Ansible. Aunque en los sistemas muy críticos siempre recomiendo hacerlo de forma manual, ya que las actualizaciones de seguridad incluyen reinicio, sobre todo si afectan al núcleo o kernel.
Para saber más: