Christophe Casalegno

SxUpdate : automatisation en bash des mises à jour Debian

SxUpdate (StackX Update)

SxUpdate est un script Bash sous licence GPL conçu pour automatiser de manière fiable les mises à jour système sur Debian, tel qu’il est exécuté sur les serveurs StackX de ScalarX.

SxUpdate gère l’exécution non-interactive, la conservation des fichiers de configuration, la journalisation, la détection d’un reboot requis ainsi que la robustesse face aux dépôts tiers (Sury, NodeSource, MariaDB, Webmin, etc.) en réparant automatiquement les problèmes de signatures/clé APT.

Fonctionnalités principales

– Vérification des droits root.
– Verrouillage anti-concurrence (lockfile) pour éviter les doubles exécutions.
– Préfetch des paquets avant mise à jour (-d full-upgrade).
– Nettoyage optionnel en fin de run (–clean).
– Préservation des fichiers de conf via –force-confdef et –force-confold.
– Support ucf via variables d’environnement (conservation des confs).
– Neutralisation des prompts fréquents (needrestart, apt-listchanges).
– Détection des erreurs de signature/clé (NO_PUBKEY, EXPKEYSIG, etc.).
– Réparation non destructive des sources existantes en ajoutant/corrigeant signed-by sans écraser les options/mirrors.
– Support des formats /etc/apt/sources.list + *.list + *.sources (deb822).
– Dernier recours : import automatique des key IDs manquantes via keyservers (cascade).
– Journalisation de chaque exécution dans /var/log/sxupdate/
– Indique en fin de script si un reboot est requis (/var/run/reboot-required).

Utilisation

Après téléchargement du script :


cp sxupdate.sh /usr/local/bin/sxupdate
chmod +x /usr/local/bin/sxupdate

Lancement standard :


sxupdate

Lancement avec nettoyage automatique à la fin :


sxupdate --clean

Mode maintenance (forcer l’exécution des routines de réparation avant apt-get update) :


sxupdate --force-repair

Note : le script doit être lancé avec les droits root (sudo ou depuis root directement).

Notes de conception

Le script est pensé pour fonctionner en « dual-mode » : en exécution planifiée (cron) sur une flotte de serveurs, sans intervention humaine, mais également en manuel si nécessaire.

Les réparations de dépôts APT sont faites de manière non destructive : le script évite d’écraser une configuration existante (mirror interne, options APT spécifiques), et se limite à corriger les éléments nécessaires au bon fonctionnement (clé/signature).

Todo list

– Ajouter un mode –dry-run pour simuler les étapes.
– Détection proactive des dépôts en échec (quarantaine optionnelle d’un dépôt tiers qui casserait apt update).
– Détection des paquets cassés avec suggestion de correction.

Ressources

Script : sxupdate.sh


Christophe Casalegno (retrouvez tous mes réseaux sur : all.bo)