cron-apt

Préférer le paquet unattended-upgrade à cron-apt pour réaliser les upgrade de manière silencieuse.

Généralités

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.

Documentation

http://blog.pastoutafait.org/billets/Mise-%C3%A0-jour-automatique-avec-Cron-APT

Installation

aptitude install cron-apt

Configuration

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.

Amélioration des affichages des mails

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.