Unattended-upgrades
Présentation de unattended-upgrades
Sur toutes les distros utilisant apt, le but de ce paquet est d'installer automatiquement les mises à jour. On garde le serveur à jour avec les dernières updates de sécurité (et plus, selon la configuration). Le tout est fait automatiquement et peut être accompagné d'un mail à l'administrateur.
Il convient d'avoir un moyen de surveiller les changements. J'utilise ma supervision, mais le wiki Debian conseille d'utiliser apt-listchanges pour envoyer des mails.
Installation
Pas grand-chose à installer:
<source> apt-get install unattended-upgrades apt-listchanges </source>
Configuration
L'installation par défaut effectue les updates normales ainsi que les updates de sécurité. La configuration se trouve dans /etc/apt/apt.conf.d/50unattended-upgrades.
Voici les lignes de configuration que j'ai retenues pour mon usage personnel:
<source> //Contrôle quels paquets seront mis à jour Unattended-Upgrade::Origins-Pattern {
// Codename based matching: // This will follow the migration of a release through different // archives (e.g. from testing to stable and later oldstable). // Software will be the latest available for the named release, // but the Debian release itself will not be automatically upgraded. "origin=Debian,codename=${distro_codename},label=Debian"; "origin=Debian,codename=${distro_codename},label=Debian-Security"; "origin=Debian,codename=${distro_codename}-security,label=Debian-Security"; // Archive or Suite based matching: // Note that this will silently match a different release after // migration to the specified archive (e.g. testing becomes the // new stable).
}; //Contrôle quels paquets seront blacklistés Unattended-Upgrade::Package-Blacklist {
// The following matches all packages starting with linux- // Use $ to explicitely define the end of a package name. Without // the $, "libc6" would match all of them. // Special characters need escaping // The following matches packages like xen-system-amd64, xen-utils-4.1, // xenstore-utils and libxenstore3.0 // For more information about Python regular expressions, see // https://docs.python.org/3/howto/regex.html
}; //Supprimer les kernel inutiles Unattended-Upgrade::Remove-Unused-Kernel-Packages "true"; //Activer le reboot automatique (si personne n'est connecté) Unattended-Upgrade::Automatic-Reboot "true"; //Heure du reboot automatique (si nécessaire) Unattended-Upgrade::Automatic-Reboot-Time "04:00"; </source>
Activation
Pour activer unattended-upgrades, il faut créer le fichier /etc/apt/apt.conf.d/20auto-upgrades et y mettre le contenu:
<source> APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; </source>
Test
On peut tester la conf avec:
<source> unattended-upgrades --debug --dry-run </source>
Logs
Les logs se trouvent dans /var/log/unattended-upgrades.
- unattended-upgrades.log retrace toutes les actions
- unattended-upgrades-dpkg.log affiche les sorties de apt
Modification des heures de lancement
Les heures de lancement sont gérées par des timers Systemd. Les fichiers utilisés par défaut sont:
- Pour les downloads : /lib/systemd/system/apt-daily.timer qui peut ếtre supplanté par /etc/systemd/system/apt-daily.timer.d/override.conf
- Pour les upgrades : /lib/systemd/system/apt-daily-upgrade.timer qui peut être supplanté par /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
Pour changer les heures, typiquement, on utilisera : <source>
- Pour les downloads
- sudo systemctl edit apt-daily.timer
- sudo systemctl restart apt-daily.timer
- sudo systemctl status apt-daily.timer (optional, you can check the next trigger time with this)
- Ou, pour les upgrades
- sudo systemctl edit apt-daily-upgrade.timer
- sudo systemctl restart apt-daily-upgrade.timer
- sudo systemctl status apt-daily-upgrade.timer (optional, you can check the next trigger time with this)
</source>