Utiliser Debian et dérivées

Debian : Activer les mises à jour automatique avec unattended-upgrades

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

debian-logo



Introduction



Avec Debian, il est possible d'automatiser les mises à jour. Cela se fait avec l'outil unattended-upgrades.
Dans cet article, nous allons voir sa mise en place.

Installation



Dans un premier temps, on met à jour les miroirs :

Code BASH :
apt update


Puis, on installe l'outil :

Code BASH :
apt install unattended-upgrades


Configuration de l'outil



Le fichier de configuration est /etc/apt/apt.conf.d/50unattended-upgrades :

Code BASH :
vi /etc/apt/apt.conf.d/50unattended-upgrades


Il y a plusieurs sections dans ce fichier :

Section Unattended-Upgrade::Origins-Pattern : Cela correspond aux sources de mise à jour. Par défaut seul Debian (dépôt de base) et Debian-Security sont actifs. Si on souhaite tout mettre à jour, on peut décommenter updates et proposed-updates

Code TEXT :
//      "origin=Debian,codename=${distro_codename}-updates";
//      "origin=Debian,codename=${distro_codename}-proposed-updates";
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";


Section Unattended-Upgrade::Package-Blacklist : Elle permet de blacklister des paquets de la mise à jour automatique. Il y a des exemples, je vous traduis les commentaires en anglais :

Code TEXT :
    // tous les paquets commençant par linux-
//  "linux-";
 
    // Utiliser $ pour marquer explicitement la fin d'un paquet. Sans
    // the $, tous les paquets contenant "libc6" seront concernés.
//  "libc6$";
//  "libc6-dev$";
//  "libc6-i686$";
 
    // Caractères spéciaux doivent être échappés
//  "libstdc\+\+6$";
 
    // Expressions régulières de façon à ce que xen-system-amd64, xen-utils-4.1,
    // xenstore-utils et libxenstore3.0 soit exclus.
//  "(lib)?xen(store)?";


On peut être alerté par mail (pour tout ou seulement en cas d'erreur), via les lignes suivantes à décommenter (doit avoir un serveur de mail fonctionnel) :

Code BASH :
//Unattended-Upgrade::Mail "";
//Unattended-Upgrade::MailOnlyOnError "false";


Je déconseille de décommenter cette ligne, mais si vous voulez faire du ménage dans les noyaux, libre à vous :

Code BASH :
//Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";


On peut aussi désinstaller les dépendances inutiles (les orphelins) via ces lignes à décommenter :

Code BASH :
//Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
//Unattended-Upgrade::Remove-Unused-Dependencies "false";


En cas de mise à jour du noyau, il faut redémarrer. Si votre serveur n'est pas dans un environnement critique, vous pouvez automatiser ce reboot (à étudier en fonction du contexte). Attention, le reboot se fait sans aucune conformation :

Code BASH :
//Unattended-Upgrade::Automatic-Reboot "false";
//Unattended-Upgrade::Automatic-Reboot-Time "03:30";


On peut limiter la bande passante lors du téléchargement avec la ligne ci-dessous (valeur en ko/s) :

Code BASH :
//Acquire::http::Dl-Limit "70";


On peut activer le log sur la mise à jour auto en décommentant et en passant à true :

Code BASH :
Unattended-Upgrade::SyslogEnable "true";
// Unattended-Upgrade::SyslogFacility "daemon";


Il y a d'autres petites options dans ce fichier évidemment...

Activation de l'outil



Après la configuration, place à l'activation. Cela se passe dans /etc/apt/apt.conf.d/20auto-upgrades.

Copier le modèle :

Code BASH :
cp /usr/share/unattended-upgrades/20auto-upgrades /etc/apt/apt.conf.d/20auto-upgrades


Puis l'éditer :

Code BASH :
vi /etc/apt/apt.conf.d/20auto-upgrades


Voici quelques valeurs possibles :

Code BASH :
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "30";



Tester la mise à jour



On peut tester l'outil via la commande suivante (mode debug pour bien tout voir, et en simulation) :

Code BASH :
unattended-upgrades --debug --dry-run 


Tous les logs se trouvent dans /var/log/unattended-upgrades.