Outils pour utilisateurs

Outils du site


Panneau latéral

linux:unattended-upgrades (lu 4 fois)

Unattended-Upgrades : Mises à jour automatiques

Cette documentation explique comment installer, configurer et administrer unattended-upgrades sous Debian (Trixie) pour automatiser les mises à jour de sécurité et de dépôts tiers (Docker, Tailscale, Zabbix).

1. Installation et activation

Installez le paquet principal ainsi que le gestionnaire de notifications locales :

sudo apt update && sudo apt install unattended-upgrades bsd-mailx

Activez le déclenchement automatique via l’interface système :

sudo dpkg-reconfigure -plow unattended-upgrades
Choisissez Oui (Yes) à l’invite pour activer la tâche planifiée.

2. Identification des métadonnées des dépôts

Pour autoriser des dépôts tiers (hors Debian Security), il faut impérativement extraire leurs paramètres exacts (o=, a=, c=) à l’aide de la commande suivante :

apt-cache policy

Exemple de sortie analysée

  • Docker :
    release o=Docker,a=trixie,l=Docker CE,c=stable

    → S’écrira : origin=Docker,archive=trixie,component=stable

  • Tailscale :
    release o=Tailscale,n=trixie,l=Tailscale,c=main

    → S’écrira : origin=Tailscale,codename=trixie

  • Zabbix : Attention aux casses (o=Zabbix et o=zabbix) → Nécessite deux entrées distinctes.

3. Configuration principale

Modifiez le fichier de configuration : etc/apt/apt.conf.d/50unattended-upgrades

Bloc Allowed-Origins (Exemple complet)

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
    "origin=Debian,archive=stable-updates";
    "origin=Tailscale,codename=${distro_codename}";
    "origin=Docker,archive=${distro_codename},component=stable";
    "origin=Zabbix,codename=${distro_codename},component=main";
    "origin=zabbix,codename=${distro_codename},component=main";
 
};

NB : Respectez strictement la syntaxe clé=valeur séparée par des virgules. Une mauvaise syntaxe lèvera une erreur Python ValueError: not enough values to unpack.

Options de maintenance recommandées

// Nettoyage des dépendances inutiles (équivalent apt autoremove)
Unattended-Upgrade::Remove-Unused-Dependencies "true";
 
// Gestion du redémarrage automatique en cas de mise à jour de Kernel
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

4. Planification et exécution (Systemd Timers)

Le script est piloté par Systemd et s’exécute généralement deux fois par jour (le matin pour les installations, le soir pour le nettoyage) avec un délai aléatoire pour préserver les dépôts.

Pour connaître l’heure exacte du prochain passage sur la machine :

systemctl list-timers apt-daily.timer apt-daily-upgrade.timer

Vérifiez également que le fichier etc/apt/apt.conf.d/20auto-upgrades contient l’activation des tâches périodiques :

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";

5. Débogage et Validation

Pour tester la configuration et simuler une mise à jour sans affecter le système, utilisez le mode dry-run avec le verbeux de debug :

sudo unattended-upgrades --dry-run -d

Points de contrôle dans les logs

  • Paquet autorisé :
    Checking: tailscale [...] pkgs that look like they should be upgraded: tailscale
  • Paquet bloqué volontairement :
    Marking not allowed [...] with -32768 pin

6. Bonnes pratiques

Pratique Description
Dépôts tiers N’ajoutez que des dépôts de confiance (Docker, Tailscale). Évitez les dépôts PPA ou de test instables.
Reboot planifié Activez l‘Automatic-Reboot la nuit si le serveur n’a pas de contrainte de haute disponibilité stricte (indispensable pour appliquer les correctifs de Kernel).
Service de Mail L’installation de bsd-mailx installe par défaut exim4. Si vous n’utilisez pas de relais SMTP extérieur, désactivez le service ou commentez la ligne Unattended-Upgrade::Mail pour éviter les processus inutiles en tâche de fond.
Surveillance Consultez régulièrement le fichier de log principal en cas de doute : /var/log/unattended-upgrades/unattended-upgrades.log.
linux/unattended-upgrades.txt · Dernière modification : de edmc73