Automatiser les mises à jour du système
- Ressources :
- Installer les paquets nécessaires :
apt install unattended-upgrades apt-listchanges
- unattended-upgrade : permet d'automatiser les mises à jour et d'envoyer des emails de notification.
- apt-listchanges : envoie des emails contenant les modifications apportées par les nouveaux paquets installés.
- Fichiers de log contenant les infos sur les mises à jour des paquets du système :
/var/log/dpkg.log
/var/log/unattended-upgrades/
- Fichiers concernant
apt-listchanges
:/etc/apt/listchanges.conf
: contient la configuration dont l'adresse email vers laquelle envoyé le rapport.- ATTENTION: Changer l'adresse pour
adminsys@<domaine-sinp>
. Ce script ne semble pas utiliser le fichier/etc/aliases
.
/etc/apt/apt.conf.d/20listchanges
: déclenche automatiquement le script lors des mises à jour.
- Activer unattended-upgrade en remplaçant le contenu du fichier suivant :
vi /etc/apt/apt.conf.d/20auto-upgrades
- Y placer le contenu suivant :
// Enable the update/upgrade script (0=disable) APT::Periodic::Enable "1"; // Do "apt-get update" automatically every n-days (0=disable) APT::Periodic::Update-Package-Lists "1"; // Do "apt-get upgrade --download-only" every n-days (0=disable) APT::Periodic::Download-Upgradeable-Packages "7"; // Run the "unattended-upgrade" security upgrade script every n-days (0=disabled) // Requires the package "unattended-upgrades" and will write a log in /var/log/unattended-upgrades APT::Periodic::Unattended-Upgrade "1"; // Do "apt-get autoclean" every n-days (0=disable) APT::Periodic::AutocleanInterval "7"; // - Send report mail to root // 0: no report (or null string) // 1: progress report (actually any string) // 2: + command outputs (remove -qq, remove 2>/dev/null, add -d) // 3: + trace on APT::Periodic::Verbose "1"; // sleep for a random interval of time (default 30min) APT::Periodic::RandomSleep "1800";
- Configurer unattended-upgrade en éditant le fichier :
vi /etc/apt/apt.conf.d/50unattended-upgrades
- Modifier le contenu suivant :
# Paquets mis à jour Unattended-Upgrade::Origins-Pattern { "origin=Debian,codename=${distro_codename}-updates"; "origin=Debian,codename=${distro_codename},label=Debian"; "origin=Debian,codename=${distro_codename},label=Debian-Security"; "origin=Debian,codename=${distro_codename}-security,label=Debian-Security"; }; # Ne pas mettre à jour les paquets : Grub Unattended-Upgrade::Package-Blacklist { "grub*"; }; # Envoyer les emails à l'admin système en indiquant son email (ce script ne semble pas utiliser le fichier /etc/aliases) Unattended-Upgrade::Mail "adminsys@<sinp-domaine>"; # Interdire le reboot auto Unattended-Upgrade::Automatic-Reboot "false"; # Ne pas prendre en charge la gestion de l'énergie Unattended-Upgrade::OnlyOnACPower "false";
- Tester le script de mise à jour auto :
unattended-upgrades --dry-run --debug
- Déboguer :
cat /var/log/unattended-upgrades/unattended-upgrades.log | more