La mise en place d’un dépôt personnel, ou miroir local, des dépôts officiels Ubuntu est une pratique d’administration système qui consiste à cloner tout ou partie des dépôts de paquets sur un serveur situé sur le réseau local. L’objectif est de centraliser les sources de mise à jour et d’installation pour l’ensemble des machines d’un parc informatique.
L’un des intérêts majeurs d’un miroir local est l’optimisation de l’utilisation de la bande passante et le gain de temps. Dans un environnement où plusieurs machines doivent être mises à jour, chaque serveur ou poste de travail télécharge individuellement les mêmes paquets depuis les serveurs publics d’Ubuntu, ce qui entraîne une duplication massive des données .
En installant un miroir local, les téléchargements depuis l’extérieur ne sont effectués qu’une seule fois, lors de la synchronisation du miroir avec les dépôts officiels. Toutes les autres machines du réseau se servent ensuite de ce miroir, via le réseau local, pour obtenir leurs paquets . La vitesse de transfert sur un réseau local (par exemple, via Ethernet ou Wi-Fi) est en effet bien supérieure aux débits offerts par une connexion internet, ce qui rend les installations et les mises à jour quasi instantanées .
La mise en place d’un miroir local offre une indépendance vis-à-vis de la connexion internet. Dans des environnements où l’accès à internet est limité, instable ou inexistant, comme les laboratoires, les salles de classe ou les réseaux industriels, le miroir devient une ressource essentielle . Les machines peuvent continuer à s’installer, se mettre à jour et fonctionner normalement même en cas de panne de la connexion internet ou d’indisponibilité des serveurs officiels . Cette autonomie garantit la continuité des opérations dans des environnements critiques .
Pour les administrateurs système, un miroir local est un outil de contrôle puissant. En ne synchronisant que les dépôts et les composants sélectionnés, l’administrateur garde la main sur les versions des paquets disponibles pour ses utilisateurs . Il est ainsi possible de geler un environnement à un instant T, de tester les mises à jour de sécurité sur un petit nombre de machines avant un déploiement plus large, ou de garantir que toutes les machines d’un parc utilisent une version identique d’un paquet donné . En pratique, l’administrateur modifie le fichier /etc/apt/mirror.list pour ne retenir que les dépôts pertinents (par exemple, en ne conservant que la branche security pour les mises à jour de sécurité) .
Voici un tutoriel détaillé expliquant comment créer, utiliser et entretenir un miroir de dépôt Ubuntu.
1. Comprendre les enjeux et les prérequis
Avant de commencer, il est crucial de comprendre l’engagement que représente la gestion d’un miroir. L’équipe ubuntu-mirror-admins souligne qu’il est dans l’intérêt de personne de changer son fichier sources.list à chaque fois qu’un miroir disparaît. Un miroir doit donc être conçu pour durer .
Ressources matérielles nécessaires :
- Espace disque : C’est le critère le plus important. Un miroir complet nécessite environ 3.6 To pour l’archive des paquets et 50 Go supplémentaires pour les images CD d’installation . Cette taille ne cesse de croître.
- Bande passante : Un miroir public génère un trafic considérable. Assurez-vous que votre connexion montante est suffisante pour supporter les demandes des utilisateurs sans saturer votre machine .
- Outils : Plusieurs logiciels existent pour synchroniser un miroir. L’un des plus connus est apt-mirror, bien que son site officiel (hébergé sur GitHub) soit parfois signalé comme inaccessible, le paquet reste fonctionnel .
2. Créer le miroir (la synchronisation initiale)
La création d’un miroir consiste à synchroniser une copie locale des dépôts Ubuntu avec un miroir parent officiel.
Étape 1 : Installer l’outil de synchronisation
Nous allons utiliser apt-mirror qui est un outil classique pour cette tâche. Sur votre serveur, installez-le :
sudo apt update
sudo apt install apt-mirror
Étape 2 : Configurer apt-mirror
Le fichier de configuration principal est /etc/apt/mirror.list. Vous devez l’éditer pour définir la source et la destination.
sudo nano /etc/apt/mirror.list
Voici un exemple de configuration de base commentée :
############# Configuration de apt-mirror #############
# Répertoire de base où seront stockés les miroirs
set base_path /var/www/html/ubuntu
# Chemin vers le fichier de log
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
# Architecture par défaut (amd64, arm64, etc.)
set defaultarch amd64
# Post-run hook : exécute un script pour nettoyer les vieux paquets après synchronisation
set postmirror_script $var_path/postmirror.sh
# Utiliser un proxy si nécessaire (décommentez et configurez si besoin)
# set proxy http://user:password@proxy.example.com:8080
##### Dépôts à synchroniser #####
# Le miroir parent (choisissez un miroir proche de vous, par exemple un miroir officiel ou un miroir régional)
deb http://archive.ubuntu.com/ubuntu resolute main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu resolute-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu resolute-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu resolute-security main restricted universe multiverse
# Pour d'autres versions, remplacez 'resolute' par le nom de code (jammy, focal...)
# Pour les sources (deb-src), décommentez les lignes ci-dessous si nécessaire
# deb-src http://archive.ubuntu.com/ubuntu resolute main restricted universe multiverse
# deb-src http://archive.ubuntu.com/ubuntu resolute-updates main restricted universe multiverse
# Nettoyage : les URL à garder (c'est géré par le script clean.sh)
clean http://archive.ubuntu.com/ubuntu
Explications :
- base_path : Le répertoire où le miroir sera stocké. Assurez-vous que la partition correspondante a suffisamment d’espace (3.6 To ou plus).
- deb : Les lignes de dépôt sont exactement les mêmes que celles que l’on met dans le sources.list d’un client. Ici, elles indiquent à apt-mirror ce qu’il doit télécharger depuis le serveur parent. Pour Ubuntu 24.04, le nom de code est noble .
Étape 3 : Lancer la synchronisation initiale
La première synchronisation est très longue et transfère plusieurs téraoctets de données.
sudo apt-mirror
3. Utiliser et servir le miroir
Une fois la synchronisation terminée, vous devez rendre ce miroir accessible à vos clients Ubuntu.
Servir le miroir via HTTP
Le moyen le plus simple est d’utiliser un serveur web classique comme Apache ou Nginx. Si vous avez configuré base_path sur /var/www/html/ubuntu, il vous suffit d’installer Apache :
sudo apt install apache2
Le miroir sera alors accessible à l’adresse : http://<IP_OU_DOMAINE_DU_SERVEUR>/ubuntu.
Configurer un client Ubuntu pour utiliser ce miroir privé
Sur une machine cliente, vous allez modifier la configuration des sources pour pointer vers votre nouveau miroir interne.
Important : La méthode de configuration change selon la version d’Ubuntu.
Pour Ubuntu 22.04 LTS (Jammy) et versions antérieures :
- Sauvegardez et éditez le fichier historique :
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list - Remplacez les URLs officielles par l’adresse de votre miroir.
- Avant : deb http://archive.ubuntu.com/ubuntu jammy main restricted
- Après : deb http://<IP_OU_DOMAINE_DU_SERVEUR>/ubuntu jammy main restricted
Pour Ubuntu 24.04 LTS (Noble) et versions ultérieures :
La configuration se trouve désormais dans /etc/apt/sources.list.d/ubuntu.sources.
- Éditez le fichier :
sudo nano /etc/apt/sources.list.d/ubuntu.sources - Modifiez la ligne URIs: pour pointer vers votre serveur. N’oubliez pas de spécifier le chemin vers la clé GPG (Signed-By) qui, pour un miroir standard, est celle d’Ubuntu .
Types: deb URIs: http://<IP_OU_DOMAINE_DU_SERVEUR>/ubuntu # <-- Votre miroir ici Suites: resolute resolute-updates resolute-backports Components: main universe restricted multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: http://<IP_OU_DOMAINE_DU_SERVEUR>/ubuntu # <-- Pour security aussi si vous l'avez synchronisé Suites: resolute-security Components: main universe restricted multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Appliquer les changements :
Quelle que soit la version, après modification, mettez à jour la liste des paquets :
sudo apt update
Si vous avez une erreur de signature (GPG), vérifiez que le paquet ubuntu-archive-keyring est bien installé (sudo apt install ubuntu-archive-keyring), car la clé publique y est contenue .
4. Entretenir et surveiller le miroir
Un miroir n’est utile que s’il est à jour et disponible.
Mises à jour automatiques (Cron)
La clé d’un bon miroir est sa fraîcheur. Les miroirs officiels sont mis à jour environ quatre fois par jour . Vous devez planifier l’exécution de apt-mirror via cron.
sudo crontab -e
Ajoutez une ligne pour lancer la synchronisation toutes les 6 heures par exemple :
0 */6 * * * /usr/bin/apt-mirror > /var/log/apt-mirror-cron.log 2>&1
Surveiller les logs et les erreurs
Il est impératif de surveiller la sortie de vos scripts de synchronisation. Parfois, la synchronisation échoue. Il est important de détecter et de corriger ces erreurs, car des paquets manquants nuisent à l’expérience utilisateur .
Consultez régulièrement les logs :
sudo tail -f /var/log/apt-mirror-cron.log
Nettoyage
Avec le temps, des paquets deviennent obsolètes. apt-mirror génère un script de nettoyage (clean.sh) dans le répertoire var. Vous pouvez l’exécuter manuellement après une synchronisation ou l’automatiser.
Liste de diffusion
Si votre miroir est public, ou même pour rester informé, abonnez-vous aux listes de diffusion des administrateurs de miroirs Ubuntu (ubuntu-mirrors-announce). Cela vous informera des changements majeurs ou des suppressions de paquets sur les dépôts officiels .
Résolution des problèmes courants
- Erreur « Miroir indisponible » ( apt update ) : Si vos clients n’arrivent pas à se connecter, vérifiez que votre serveur HTTP est bien en marche et que le chemin d’accès est correct. Vous pouvez temporairement remplacer l’adresse de votre miroir par l’officiel archive.ubuntu.com pour débloquer la situation .
- Problème de signature GPG sur Ubuntu 24.04+ : Assurez-vous que le champ Signed-By pointe bien vers /usr/share/keyrings/ubuntu-archive-keyring.gpg .
- Espace disque plein : Surveillez l’espace disque. Si le disque est plein, la synchronisation échouera et votre miroir deviendra incohérent . Si vous manquez d’espace, envisagez de ne synchroniser que certaines architectures (amd64 uniquement) ou seulement les composants main et updates, au lieu de l’intégralité des dépôts.
En suivant ces étapes, vous serez en mesure de déployer un miroir Ubuntu robuste, d’y connecter vos machines et de le maintenir en condition opérationnelle sur le long terme.
