Accueil

cron-apt : Automatiser les Mises à Jour sur Debian/Ubuntu

System
Difficulte: Intermediate
4 min de lecture

Guide pour installer et configurer cron-apt, un outil d'automatisation des mises à jour de paquets sur les systèmes Debian/Ubuntu.

Retour aux tutoriels

L'essentiel

  • Par défaut, cron-apt ne fait rien de dangereux : il exécute uniquement l'action 0-update, soit un apt-get update. Aucun paquet n'est téléchargé ni installé tant que vous ne l'activez pas explicitement.
  • Les actions vivent dans /etc/cron-apt/action.d/ et sont exécutées dans l'ordre alphanumérique des noms de fichiers, d'où la numérotation 0-update, 1-download, 2-upgrade.
  • La configuration recommandée est le téléchargement sans installation : mv /etc/cron-apt/action.d/1-download.disabled /etc/cron-apt/action.d/1-download. Vous êtes notifié, les paquets sont déjà là, et vous gardez la décision finale.
  • Les notifications se règlent dans /etc/cron-apt/config avec MAILON="always" et MAILTO. Elles supposent un MTA fonctionnel sur la machine, du type msmtp ou postfix.
  • L'installation automatique via un fichier 2-upgrade contenant upgrade -y reste possible mais risquée. Pour un ciblage plus fin, notamment sur les seuls correctifs de sécurité, unattended-upgrades est aujourd'hui souvent préféré.
Qu'est-ce que cron-apt ?
cron-apt est un outil qui permet d'automatiser les routines de mise à jour des paquets sur les systèmes basés sur Debian (comme Ubuntu). Il utilise cron pour exécuter apt à des intervalles réguliers. Sa configuration par défaut est très sûre : il télécharge les nouvelles listes de paquets et les nouveaux paquets, mais n'installe ni ne met à jour quoi que ce soit sans configuration explicite.

Pourquoi utiliser cron-apt ?

Plutôt que d'utiliser un simple script cron qui lancerait apt upgrade -y, cron-apt offre plus de contrôle et de sécurité :

  • Configuration fine : Vous pouvez définir précisément quelles actions sont effectuées (mise à jour des listes, téléchargement, installation).
  • Sécurité par défaut : Par défaut, il ne fait rien de dangereux. Vous devez activer explicitement les mises à jour.
  • Notifications : Il peut vous envoyer par e-mail le résultat de ses actions, y compris la liste des paquets prêts à être mis à jour.

Prérequis

  • Un système Debian ou Ubuntu.
  • Accès root ou privilèges sudo.
  • (Optionnel) Un agent de transport de mail (MTA) comme msmtp ou postfix pour recevoir les notifications.

Installation

sudo apt-get update
sudo apt-get install -y cron-apt

L'installation place une tâche cron dans /etc/cron.d/cron-apt, qui s'exécute généralement une fois par nuit.

Configuration

La configuration se trouve dans /etc/cron-apt/. Les deux fichiers principaux sont config et les scripts dans action.d.

Fichier /etc/cron-apt/config

Ce fichier contrôle les options générales.

# Pour recevoir des rapports par email
MAILON="always"
# Votre adresse email
MAILTO="root" # ou [email protected]

Par défaut, cron-apt ne fait qu'un apt-get update. Pour changer ce comportement, on utilise les fichiers d'action.

Fichiers d'action dans /etc/cron-apt/action.d/

Les fichiers dans ce répertoire définissent les actions à exécuter, dans l'ordre alphanumérique.

  • 0-update : Exécute `apt-get update`. C'est l'action par défaut.
  • 1-download : Exécute `apt-get --download-only upgrade`. Télécharge les paquets sans les installer.

Par défaut, seul 0-update existe. Pour télécharger les paquets, renommez 1-download.disabled en 1-download.

Activer le téléchargement automatique (mais pas l'installation)

C'est une configuration très sûre et recommandée. Vous êtes notifié des mises à jour, elles sont prêtes à être installées, mais vous gardez le contrôle final.

# Le fichier 0-update existe déjà. On active le téléchargement.
sudo mv /etc/cron-apt/action.d/1-download.disabled /etc/cron-apt/action.d/1-download

Maintenant, chaque nuit, cron-apt mettra à jour les listes et téléchargera les paquets. Vous recevrez un mail avec la liste des paquets. Pour les installer, il vous suffira de faire sudo apt-get upgrade.

Activer l'installation automatique (Attention !)

AVERTISSEMENT : L'installation automatique peut parfois casser un système si une mise à jour a un bug ou une incompatibilité. Ne le faites que si vous comprenez les risques.

Créez un nouveau fichier d'action :

sudo nano /etc/cron-apt/action.d/2-upgrade

Ajoutez cette ligne :

upgrade -y

Cette configuration lancera un apt-get upgrade -y après la mise à jour des listes et le téléchargement. Pour être plus prudent, vous pouvez utiliser dist-upgrade pour gérer les dépendances plus intelligemment.

Le meilleur des deux mondes
La configuration la plus populaire est de n'activer que le téléchargement et de recevoir les notifications par mail. Cela vous permet de vérifier rapidement les mises à jour en attente et de les installer manuellement quand vous êtes prêt.

Filtrer les mises à jour

Vous pouvez limiter les mises à jour à certaines sources, par exemple uniquement les mises à jour de sécurité.

sudo nano /etc/cron-apt/action.d/1-download

Modifiez la ligne pour utiliser l'option -o :

# Ne télécharger que depuis les dépôts de sécurité
dist-upgrade -d -o APT::Get::Only-Source-Lists="security"
unattended-upgrades
Pour une gestion encore plus fine des mises à jour automatiques (notamment pour n'appliquer que les patchs de sécurité), l'outil unattended-upgrades est maintenant souvent préféré à cron-apt. Il offre plus d'options de configuration pour la sélection des paquets.

Conclusion

cron-apt est un outil fiable et éprouvé pour automatiser la gestion des mises à jour sur les systèmes Debian/Ubuntu. Sa configuration par défaut, axée sur la sécurité, et ses capacités de notification en font un excellent choix pour les administrateurs qui veulent rester informés et garder le contrôle, tout en automatisant les tâches répétitives de mise à jour.

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

cron-apt tourne chaque nuit mais rien n'est jamais installé, est-ce normal ?
Oui, c'est le comportement voulu par défaut. Seule l'action 0-update est présente à l'installation, et elle se limite à rafraîchir les listes de paquets. Pour télécharger sans installer, renommez 1-download.disabled en 1-download ; pour installer, il faut créer explicitement un fichier 2-upgrade contenant upgrade -y.
Je ne reçois aucun rapport par e-mail, où chercher ?
Deux causes se cumulent souvent. D'abord la configuration : /etc/cron-apt/config doit contenir MAILON="always" et un MAILTO valide, sinon aucun message n'est émis quand il n'y a rien à signaler. Ensuite le transport : cron-apt délègue l'envoi au MTA local, donc sans msmtp ou postfix installé et configuré, le mail ne part jamais.
Dans quel ordre les actions du répertoire action.d sont-elles exécutées ?
Dans l'ordre alphanumérique des noms de fichiers, ce qui explique le préfixe numérique de la convention de nommage. 0-update rafraîchit les listes, 1-download télécharge les paquets, 2-upgrade les installe. Si vous ajoutez une action personnalisée, choisissez son préfixe en fonction du moment où elle doit s'insérer dans cette séquence.
Comment ne récupérer que les mises à jour de sécurité ?
Éditez /etc/cron-apt/action.d/1-download et remplacez son contenu par dist-upgrade -d -o APT::Get::Only-Source-Lists="security". L'option -d limite l'opération au téléchargement, et le paramètre APT restreint la source aux dépôts de sécurité. Le reste des mises à jour est alors ignoré par la tâche automatique.
cron-apt ou unattended-upgrades, lequel choisir aujourd'hui ?
cron-apt reste excellent pour le scénario « je télécharge, je notifie, je décide » : il est simple, éprouvé et sa configuration tient en deux fichiers. unattended-upgrades est en revanche préféré dès que vous voulez appliquer automatiquement des correctifs, car il offre une sélection de paquets bien plus fine, notamment pour ne retenir que les mises à jour de sécurité. Les deux répondent à des besoins différents plutôt qu'ils ne se remplacent.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.