Préférer le paquet unattended-upgrade
à cron-apt pour réaliser les upgrade de manière silencieuse.
Outil sur les distributions à base de Debian qui permet par défaut de télécharger automatiquement les mises à jour que l'on souhaite (sécurité ou issue du dépôt principal) et de notifier du téléchargement. Son fonctionnement de base est adaptable pour permettre une installation automatique des mises à jour de sécurité et c'est cette fonction qui est très intéressante.
aptitude install cron-apt
Création d'un fichier avec uniquement le dépôt de security Debian.
grep security /etc/apt/sources.list > /etc/apt/security.sources.list
vi /etc/cron-apt/config
APTCOMMAND=/usr/bin/aptitude MAILTO="<destination_mail_fqdn" #MAILTO="root" #MAILON="changes" au début pour mise au point MAILON="upgrade" SYSLOGON="always" MAILMSGDIR="/etc/cron-apt/mailmsg.d" SYSLOGMSGDIR="/etc/cron-apt/syslogmsg.d" #Selection du fichier utilise comme depot (celui qui ne contient que le depot securite) OPTIONS="-o quiet=1 -o Dir::Etc::SourceList=/etc/apt/security.sources.list"
Pour utiliser une adresse mail complète, il faut un outil pour cela. sSMTP fait parti de ces outils bien pratique.
Deux actions existent par défaut.
0-update 3-download
Ajouter un fichier d'action (5-install
) en plus qu'il installe les paquets en plus de télécharger sinon par défaut c'est l'action 3-download qui est exécuté et qui ne fait que récupérer les paquets mais pas les installer.
cd /etc/cron-apt/action.d/ cp -p 3-download 5-install
Dans les deux fichiers (3-download et 5-install) changer dist-upgrade
par safe-upgrade
car le premier n'est plus utilisé et uniquement pour le fichier 5-install
, supprimer l'option -d
qui spécifie d'uniquement télécharger afin que l'installation soit réellement faite et de manière automatique. Supprimer aussi l'autoclean car il est fait par l'action 3-download
.
safe-upgrade -y -o APT::Get::Show-Upgraded=true
Lancer la commande cron-apt
directement pour tester.
Par défaut l'exécution de cron-apt est lancée à 4h à l'aide du fichier /etc/cron.d/cron-apt
. A adapter en fonction des besoins.
Le fichier de log est dans /var/log/cron-apt/log
.
Il ne reste plus qu'à s'abonner à la liste de diffusion security de Debian pour se tenir au courant des failles découvertes. Si un paquet présent sur le système est concerné par un errata de cette liste de diffusion, le paquet sera mis à jour par cron-apt peu de temps après la publication.
Les mails reçus ne sont pas très lisibles, je n'arrivais pas à connaître le début d'une action. Pour simplifier cela, c'est très simple, il faut ajouter un fichier du nom de l'action dans le dossier de la directive MAILMSGDIR
. Cela positionne le contenu du message avant l'action réalisée et permet de segmenter l'affichage.
Par défaut les fichiers avec le contenu à ajouter dans les mails est /etc/cron-apt/mailmsg.d
. Positionner les fichiers nommés comme les actions suivants.
0-update
########################################################################## Package update ##########################################################################
3-download
########################################################################## Package download ##########################################################################
5-install
########################################################################## Package installation / upgrade ##########################################################################
Copier ces trois fichiers dans le dossier /etc/cron-apt/syslogmsg.d
afin que cela s'appliquer aussi pour les logs locaux.
Avec cette configuration, les actions seront bien segmentées dans le mail et dans le log au lieu d'être mélangées entre elles.