[Debian] Créer un miroir Debian local

Blabla d’introduction

Dans certains cas, rares mais pénibles, on doit survivre quelques temps sans Internet. Au delà des symptômes de manque que l’on peut ressentir, cela retarde fortement les projets que l’on peut avoir lorsqu’on possède un serveur. Un des moyens pour compenser le manque de connectivité de votre serveur vers l’extérieur est de faire une copie locale d’un ou de plusieurs serveurs de dépôts afin de continuer à pouvoir installer des logiciels sur votre serveur comme s’il était connecté à Internet.

Bien sur, cette utilisation n’est pas la seule qui peut pousser à avoir un serveur de dépôts chez soi, un simple exemple est l’application de patchs à plusieurs ordinateurs sans devoir retélécharger plusieurs fois les mêmes paquets (solution très utilisée en entreprise pour déployer massivement des mises à jour sans encombrer inutilement la bande passante Internet).

Il faut cependant avoir à l’esprit que selon ce que vous voulez « mirrorer », plusieurs Go peuvent être amenés à être copiés localement ce qui veut dire qu’il vous faut de la place sur votre disque dur et une bonne connexion Internet (celle de votre entreprise ?).

Action

Pour commencer , on va installer le paquet apt-mirror qui va s’occuper de 99% du travail à notre place. La commande pour installer n’a rien de très étonnant pour les gens qui connaissant un peu la gestion de paquets sous Debian :

apt-get install apt-mirror

Une fois le paquet installé, créez l’arborescence suivante à l’endroit ou vous voulez rapatrier vos paquets (n’oubliez pas de prévoir une zone ou il a suffisamment de place disponible):

  • un dossier général (nommé par exemple « miroir »)
  • 3 sous dossiers : skel, var et mirror

ce qui donne en ligne de commande :

mkdir miroir
cd miroir
mkdir var skel mirror

On va maintenant creer le fichier de configuration (par exemple dans le dossier miroir précédemment créé afin qu’il soit « solidaire » du mirroir).

NOTE: Si on ne crée pas de fichier de configuration, les données « mirrorées » seront celles des dépôts présents dans le fichier sources.list de votre Debian (/etc/apt/sources.list). Les données seront copiées à l’emplacement /var/spool/apt-mirror/.

Création du fichier de configuration

Créez un nouveau fichier et placez y les lignes suivantes :

set base_path /home/test/miroir
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
set defaultarch i386
set nthreads 4

set _tilde 0

deb http://security.debian.org/ etch/updates main contrib

clean http://security.debian.org/

Une petite explication sur les différentes lignes du fichier :

Les 4 premières lignes servent à régler le path vers les différents dossiers que vous avez crées. En théorie, la seule ligne que vous ayez à toucher est la première qui dépend de l’endroit ou vous voulez stocker les fichiers « mirrorés ».

La cinquième ligne indique quel est et où se situe le fichier servant à faire le ménage après une synchronisation de votre dépôts.

La sixième ligne donne l’architecture que vous souhaitez rapatrier par défaut. Cela peut être i386, amd64, …

La ligne suivante indique le nombre de threads simultanés qui vont télécharger les données. Plus il y en a, plus cela va vite mais plus votre ordinateur va voir sa charge CPU augmenter et plus votre connexion Internet va être sollicitée.

La ligne concernant « tilde » doit certainement servir à quelque chose mais à quoi ?

Enfin la/les ligne(s) commençant par deb indique ce que vous voulez rapatrier. Dans l’exemple donné, on va télécharger tout ce qui concerne les patchs de sécurité pour la distribution Debian etch pour l’architecture i386.

Pour ajouter d’autre dépôts, il suffit de les mettre à la suite. Ainsi, on aurait pu ajouter la ligne

deb http://debian.ens-cachan.fr/ftp/debian. lenny main non-free pour rapatrier en local les archives pour la distribution debian lenny incluant les paquets non libres

deb-amd64 http://debian.ens-cachan.fr/ftp/debian. lenny main non-free pour rapatrier en local les archives pour la distribution debian lenny incluant les paquets non libres pour l’architecture amd64 (et non i386)

Note: Ubuntu étant basé sur Debian, on peut creer des miroirs des dépôts Ubuntu de la même manière.

La dernière ligne sert à exécuter des scripts de nettoyage post-téléchargement présents sur les serveurs que l’on « pille ». Ceux-ci permettent de libérer de la place en supprimant fichiers et dossiers qui n’ont plus de raisons d’exister. On peut également placer la directive « skip-clean » mais je suis infichu de dire précisément à quoi elle sert.

Une fois ce fichier sauvegarder, on peut lancer la séquence de rapatriement de fichiers. Pour ce faire, tapez dans un terminal :

apt-mirror /path/vers/votre/fichier/de/conf

et voila ! L’ordinateur va explorer tout seul les dépôts et télécharger ce que vous lui avez demandez.

Attention : Il n’y a aucune barre de progression indiquant ou ça en est ce qui peut être déroutant. Un des moyens pour savoir si votre système est bien en train de travailler est d’utiliser la commande « top » et de contrôler que vous avez bien des processus « wget » en cours d’exécution.

Et après ?

Une fois que la synchronisation est faite (bravo, vous êtes patient !), vous êtes à la tête de quelques dizaines de Gigaoctets que vous aimeriez bien utiliser sur d’autres postes. Pour ce faire, il faut modifier le fichier sources.list de chaque ordinateur qui doivent utiliser votre dépôts local.

2 choix sont à présent possibles :

  1. l’accès aux fichiers peut se faire de manière local auquel cas les lignes dans le sources.list ressembleront à : « deb /mes/données/en/local main contrib »
  2. l’accès aux fichier se fait à travers votre réseau local auquel cas les lignes dans le sources.list ressembleront à : « deb http://adresse.local.de.lordinateur/local/ main contrib » ou à « deb http://adresse.local.de.lordinateur/local/ main contrib ». Il va sans dire qu’il est nécessaire d’avoir au préalable installer et configurer un serveur HTTP et/ou FTP qui puisse « servir » les données (ça ne sera pas détaillé ici car ce n’est pas l’objet de cet article).

Notes complémentaires :

  1. Pour mettre le dépôts local à jour, il suffit de réexécuter la même ligne de commande que celle qui permet de le synchroniser une première fois (apt-mirror fichier-de-conf).
  2. Si le serveur est mis à jour trop souvent, il se peut que les serveur le blacklit votre IP pour cause de flooding.
  3. Certains serveurs déconseillent la synchronisation des dépôts locaux à certaines heures car les serveur eux mêmes se mettent à jour. Ne pas suivre ces recommandations vous exposent à l’obtention d’un dépôt local inconsistent.
  4. Quand vous installez le paquet apt-mirror, une tâche cron est automatiquement créée dans /etc/cron.d/apt-mirror pour gerer la synchronisaiton quotidienne automatique de votre dépôt. A vous de l’activer si vous voulez utiliser cette tâche cron (désactivez par défaut et de la configurer pour qu’elle aille chercher le fichier de configuartion qui vous interesse.
Ce contenu a été publié dans Linux, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à [Debian] Créer un miroir Debian local

  1. Ping : Tech Ramon » Installation d’un miroir Debian local (local repository)

Laisser un commentaire