Red Hat et dérivées version SERVEUR

Red Hat 8, Alma Linux 8 : Mettre à jour son serveur automatiquement dnf-automatic ou yum-cron

Table des matières

system_upgrade



Introduction



Il peut être utile, d'appliquer sur son système les mises à jour de sécurité de manière automatique.
Il existe plusieurs solutions. Nous allons voir ici le mécanisme disponible directement avec le gestionnaire de paquets.

Les procédures diffèrent entre les bases Red Hat 7 et Red Hat 8.
Nous allons détailler les 2 solutions.

Red Hat 8, Alma Linux 8 : Mise à jour automatique avec dnf-automatic



Sous Red Hat 8 et dérivées, le gestionnaire de paquets est dnf.

On va installer dnf-automatic qui permet d'appliquer les mises à jour de manière automatique :

Code BASH :
dnf install dnf-automatic


Une fois installé, il est configurable via le fichier /etc/dnf/automatic.conf :

Code BASH :
vi /etc/dnf/automatic.conf


Suivant votre politique de mises à jour, on peut jouer sur la valeur de upgrade_type :

Code BASH :
upgrade_type = default # Met tous les paquets à jour
upgrade_type = security # Met que les mises à jour de sécurité


Vérifier que :
Code BASH :
apply_updates = yes
download_updates = yes


On peut afficher les mises à jour installées suivant :

Code BASH :
emit_via = none # Désactive l'info des paquets installés
emit_via = stdio # Envoie sur la sortie (pratique pour logger dans les journaux)
emit_via = motd # Envoie l'info sur l'écran de connexion


Il est possible d'envoyer des emails lorsque des mises à jour ont été appliquées.

dnf-automatic repose sur un timer systemd, on active donc ce timer pour mettre en service dnf-autmatic :

Code BASH :
systemctl enable --now dnf-automatic.timer


Si on le souhaite, on peut avoir des infos sur les timers avec :

Code BASH :
systemctl list-timers dnf-*


Pour tester manuellement :

Code BASH :
/usr/bin/dnf-automatic /etc/dnf/automatic.conf --timer


On peut voir les MàJ depuis le fichier de log /var/log/dnf.log :

Code BASH :
less /var/log/dnf.log


A noter que la mise en place de dnf-automatic peut se faire après installation du paquet dnf-automatic depuis Cockpit via l'onglet Softwares Updates


Si vous souhaitez modifier la planification il suffit de modifier le timer !
Par défaut il se lance entre 6h et 7h (car il y a l'option RandomizedDelaySec à 60minutes...)

Pour cela, surcharger la config du timer en indiquant l'heure souhaitée et RandomizedDelaySec à 0 :

Code BASH :
[Unit]
Description=dnf-automatic timer
# See comment in dnf-makecache.service
ConditionPathExists=!/run/ostree-booted
Wants=network-online.target
[Timer]
OnCalendar=*-*-* 4:00
RandomizedDelaySec=0
Persistent=true
[Install]
WantedBy=timers.target


Vérifier la bonne prise en compte de votre planification :

Code BASH :
systemctl list-timers dnf-auto*


Code :
NEXT                         LEFT     LAST PASSED UNIT                ACTIVATES
Sat 2022-03-05 04:00:00 CET  11h left n/a  n/a    dnf-automatic.timer dnf-automatic.service
1 timers listed.
Pass --all to see loaded but inactive timers, too.



Red Hat 7, CentOS 7 : Mise à jour automatique avec yum-cron



Sous Red Hat 7 et dérivées, le gestionnaire de paquets est yum.

On va installer yum-cron qui permet d'appliquer les mises à jour de manière automatique :

Code BASH :
yum install yum-cron


Une fois installé, il est configurable via le fichier /etc/yum/yum-cron.conf :

Code BASH :
vi /etc/yum/yum-cron.conf


Suivant votre politique de mises à jour, on peut jouer sur la valeur de update_cmd :

Code BASH :
update_cmd = default # Met tous les paquets à jour
update_cmd = security # Met que les mises à jour de sécurité


Vérifier que :
Code BASH :
apply_updates = yes
download_updates = yes


On peut afficher les mises à jour installées suivant :

Code BASH :
emit_via = none # Désactive l'info des paquets installés
emit_via = stdio # Envoie sur la sortie (pratique pour logger dans les journaux)


Il est possible d'envoyer des emails lorsque des mises à jour ont été appliquées.

yum-cron repose sur un service systemd, on active donc ce service pour mettre en service yum-cron :

Code BASH :
systemctl enable --now yum-cron


On peut vérifier que tout est OK via :

Code BASH :
systemctl status yum-cron


On peut voir les MàJ depuis le fichier de log :

Code BASH :
tail -f /var/log/yum.log
Cette page a été vue 8714 fois