installation et configuration d’un mirroir/repository local Debian (ou dépot local) via apt-mirror

Article publié le 17 Mai 2013

 

Vous commencez à avoir une flopée de machine Debian dans votre entreprise?

Vous voulez que  apt-get….  aille plus vite??

Il est temps pour vous de mettre en place un miroir Debian(ou dépot local) qui se synchronise directement avec les dépôts officiels!

Ayant déjà mis moi même cette solution en place je peux vous assurer que c’est absolument génial.

Ci-dessous un petit tuto qui vous expliquera la marche à suivre la plus simple:

Tous d’abord prévoyez un stockage assez conséquent ( 200 go pour être tranquille):

 

– Installez apt-mirror : apt-get install apt-mirror

– Ensuite je vous conseille d’organiser votre arborescence pour vous y retrouver plus facilement

* mkdir /<votre rep>/mirror/mirror

* mkdir /<votre rep>/mirror/skel

*  mkdir /<votre rep>/mirror/var

 

– Par défaut le fichier de configuration se situe dans /etc/apt/mirror.list mais je vous conseil fortement de le placer ailleurs pour cela exécuter les commandes suivantes:

* cp /etc/apt/mirror.list      /<votre rep>/mirror/<le nom que vous voulez>    (on copie le fichier de configuration ailleurs)

*  il faudra ensuite utilisez cette commande pour lancer la synchronisation mais je vous le rappellererai plus tard 🙂        :                                                                                                                         apt-mirror   /<votre rep>/mirror/<le nom de votre fichier de conf>

 

– Ouvrez votre fichier de configuration. Vous devriez avoir quelque chose comme ceci:

############# config ##################

#
set base_path /media/Backup/apt-mirror
#
# if you change the base path you must create the directories below with write privileges
#
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 xxxx (votre architecture i386/hppa/powerPC/ia64...)
set defaultarch i386 
set nthreads     2
set tilde 0
#
############# end config ##############
deb http://archive.ubuntu.com/ubuntu/ hardy main restricted
deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ hardy-security main restricted
deb http://archive.ubuntu.com/ubuntu/ hardy universe multiverse
deb http://archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse
deb http://archive.ubuntu.com/ubuntu/ hardy-security universe multiverse
deb http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
deb http://packages.medibuntu.org/ hardy free non-free
deb-amd64 http://packages.medibuntu.org/ hardy free non-free
deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy main restricted
deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-security main restricted
deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-security universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse

 

Décommettez toute les lignes commençant par « set ».

 

Supprimez tous les liens (après le commentaire « end config »)  et ajoutez des dépôts plus « officiels » par exemple :

 

deb http://ftp.fr.debian.org/debian/ wheezy main

deb-src http://ftp.fr.debian.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

# wheezy-updates, previously known as ‘volatile’
deb http://ftp.fr.debian.org/debian/ wheezy-updates main
deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main

 

 

Si vous êtes derrière un proxy vous devez configure le wgetrc:

– vi /etc/wgetrc

– Ajouter les lignes suivantes au fichier de configuration:

http_proxy = http://user:passwd@proxy:port
use_proxy = on

 

Il ne vous reste plus qu’à lancer la synchronisation:

 

apt-mirror   /<votre rep>/mirror/<le nom de votre fichier de conf>

Si tout ce passe bien la synchronisation commence, vous devriez avoir ceci qui apparaît :

Cela signifie que vous êtes entrain de synchroniser avec le  dépôt officiel!

 

Maintenant il ne reste plus qu’à rendre votre  miroir accessible pour cela nous allons installer un serveur apache:

– apt-get install apache2

– Créez le Virtualhost qui permettra à  votre miroir d’être accessible pour cela éditez le fichier /etc/apache2/site-available/default et ajoutez après la balise </VirtualHost> les lignes suivantes:

 

Alias /debian /<chemin>/mirror
<Directory /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian/>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>

Alias / /<chemin>/mirror
<Directory /var/miroir/mirror/security.debian.org/>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>

Il ne reste plus qu'à redémarrer le service apache.
- /etc/init.d/apache2 restart

Voila votre dépôt est prêt!
Sachez que vous pouvez paramétrer une synchronisation pour plusieurs versions de la distribution de Debian, il suffit de rajouter les adresses des dépôts dans le fichier de configuration de apt-mirror :-)

Voila il ne reste plus qu'à entrer sur tout vos serveurs clients la nouvelle adresse de votre repository (dans le fichier /etc/apt/source.list)

deb http://@IP_de_votre_serveur/debian/ wheezy main
deb-src http://@IP_de_votre_serveur/debian/ wheezy main

deb http://@IP_de_votre_serveur/ squeeze/wheezy main
deb-src http://@IP_de_votre_serveur/ squeeze/wheezy main

 

– apt-get update

 

Ça y’est votre repository est fonctionnel!

 

 

PS:

N’oubliez pas de cronner (de préférence la nuit) la synchronisation pour garder votre repository à  jour en utilisant la commande :   apt-mirror   /<votre rep>/mirror/<le nom de votre fichier de conf>