Winnt is not NT

Installer un miroir Debian local avec apt-mirror

Posté le 16/04/2015

Ayant plusieurs machines fonctionnant sous Debian, je trouvais qu’il était particulièrement pénible de lancer les mises à jour et d’encombrer ma ligne ADSL pour faire exactement la même chose sur chacune d’entre-elles.

J’ai donc commencer à chercher comment créer un dépôt local qui me permettrai non seulement de gagner du temps mais aussi d’alléger le trafic passant sur ma ligne.

C’est ainsi que j’ai découvert apt-mirror

Contraintes techniques

Lorsque l’on souhaite installer localement (chez soi dans mon cas) un miroir, cela implique d’avoir une liaison internet (ADSL de préférence) et un espace de stockage suffisant sur le disque destiné à accueillir celui-ci.

Le disque ou la partition doit avoir entre 200 et 500 Go d’espace disque de disponible.

Actuellement, mon miroir de Jessie pèse 280 Go. J’ai donc encore de la place sur une partition de 400 Go.

Installation et paramétrage de apt-mirror

Installation de apt-mirror

La procédure est tout à fait standard.

aptitude apt-mirror

Les répertoires indispensables pour le miroir

Pour commencer, il faut créer les répertoires mirror, skel et var.

mkdir -p /home/apt-mirror/{mirror,skel,var}

Une fois les répertoires créés il convient de les attribuer à l’utilisateur apt-mirror afin de permettre à notre miroir de parfaitement fonctionner.

Sans oublier, bien sûr, de positionner les droits adéquats sur les répertoires.

chown -R apt-mirror:apt-mirror /home/apt-mirror

chmod -R 755 /home/apt-mirror

Une fois ceci fait nous passons à la phase de configuration du miroir.

Le fichier mirror.list

Le fichier mirror.list est situé dans le répertoire /etc/apt.

C’est ce fichier de configuration qui réglera à la fois les options de apt-mirror, mais aussi contiendra le sources.list permettant la création du miroir. Voici comment se présente /etc/apt/mirror.list.

############# config ##################
#
set base_path /home/apt-mirror
#
# if you change the base path you must create the directories below with write privlages
#
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 amd64 (ou i386 pour les systèmes 32 bits)
set postmirror_script $var_path/postmirror.sh
set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
deb-amd64 http://ftp.fr.debian.org/debian/ testing main contrib non-free
deb-amd64 http://security.debian.org/ testing/updates main contrib non-free
deb-amd64 http://ftp.fr.debian.org/debian/ testing-proposed-updates main contrib non-free

Les lignes qui suivent end config correspondent en tout points à celles que l’on retrouve dans le sources.list habituel.

Synchronisation du miroir

Une fois les modifications effectuées dans le fichier de configuration, il ne reste plus qu’à synchroniser notre miroir local avec celui que nous avons choisi sur le net en étant root.

apt-mirror /etc/apt/mirror.list

Même avec une bonne connexion la première synchronisation va prendre beaucoup de temps. Donc, l’idéal est de lancer celle-ci le soir avant d’aller se coucher. Cela vous évitera de trépigner en attendant qu’elle se finisse.

C’est presque fini

Installer apache si nécessaire

aptitude install apache2

Rendre le miroir accessible via navigateur web

Pour rendre le miroir accessible à nos machines clientes du réseau local nous créons deux liens symboliques.

ln -s /home/apt-mirror/mirror/security.debian.org/ /var/www/debian-security
ln -s /home/apt-mirror/mirror/ftp.fr.debian.org/debian /var/www/debian

Modifier le sources.list des machines devant se connecter au mirroir

Faire une copie de votre sources.list avant de le modifier est, bien sûr, une précaution élémentaire.

deb http://xxx.xxx.xxx.xxx/debian/ jessie main contrib non-free
deb http://xxx.xxx.xxx.xxx/debian/ jessie-proposed-updates main contrib non-free
deb http://xxx.xxx.xxx.xxx/debian-security/ jessie/updates main contrib non-free
deb http://xxx.xxx.xxx.xxx/debian/ jessie-backports main

La notation xxx.xxx.xxx.xxx est bien sûr à remplacer par l’adresse de votre serveur local.

Automatiser la mise à jour du miroir

Pour ce faire, il suffit de placer une simple ligne dans la crontab de root.

Dans l’exemple donné, la synchronisation est effectuée au boot du serveur qui chez moi ne tourne pas 24h sur 24.

@reboot /usr/bin/apt-mirror /etc/apt/mirror.list

Effectuer la mise à jour des machines clientes

Une fois la synchronisation du miroir local effectuée, il ne reste plus qu’à faire la mise à jour des machines clientes avec un aptitude update.

J’espère que cet article vous sera utile et vous permettra, tout comme à moi, de gagner non seulement de la bande passante sur votre connexion internet, mais aussi du temps grâce à la vitesse de votre réseau personnel.

Commentaires

comments powered by Disqus