Quentin Demoulière

Mon blog personnel

Mise en place d'un miroir Debian

Rédigé par Quentin Demouliere - - 2 commentaires

Nous disposons d'une quarantaine de machines tournant sous Debian 7 Wheezy et nous avons également une connexion ADSL avec un débit limité en Dowload et encore plus en Upload. Alors quand une quinzaine de systèmes tente de réaliser des mises à jour en même temps depuis les miroirs officiels, les délais deviennent trop importants.

C'est pour cette raison que nous avons décidé de mettre en place un miroir Debian local qui ira se synchroniser sur les serveurs officiels toutes les nuits.

Installation du miroir :

root@miroir# aptitude install apt-mirror

Il faut ensuite configurer le fichier /etc/apt/mirror.list. Nous n'utilisons pour notre part que des Debian 64 bits, ainsi nous ne gérerons que les paquets pour architecture 64 bits.

root@miroir# cat /etc/apt/mirror.list

############# config ##################
#
set base_path /opt/miroir
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set defaultarch amd64
set postmirror_script $var_path/postmirror.sh
set run_postmirror 1
set nthreads 20
set _tilde 0
#
############# end config ##############

deb http://ftp.fr.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ wheezy main non-free contrib
deb http://ftp.fr.debian.org/debian wheezy main main/debian-installer contrib non-free

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

# wheezy-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
deb http://ftp.fr.debian.org/debian/ wheezy-proposed-updates main contrib non-free

# Backports
deb http://ftp.debian.org/debian/ wheezy-backports main

clean http://ftp.debian.org/
clean http://security.debian.org/
clean http://ftp.fr.debian.org/

Installation du service Web :

Le miroir devra être accessible par l'intermédiaire du protocole HTTP ou FTP. Dans notre cas, nous avons choisi HTTP avec un service APACHE.

root@miroir# aptitude install apache2
root@miroir# chown -R apt-mirror:apt-mirror /opt/miroir/
root@miroir# ln -s /opt/miroir/mirror/ftp.fr.debian.org/debian/ /var/www/debian/
root@miroir# ln -s /opt/miroir/mirror/security.debian.org/dists/ /var/www/dists/
root@miroir# ln -s /opt/miroir/mirror/security.debian.org/dists/ /var/www/dists/
root@miroir# ln -s /opt/miroir/mirror/security.debian.org/pool/ /var/www/pool/

Téléchargement des paquets :

Il est nécessaire de télécharger l'ensemble des paquets une première fois sur votre système. L'ensemble des paquets 64 bits requièrent à-peu-près 100 Go d'espace disque. Attention, le téléchargement prendra entre 20 et 40h !

root@miroir# apt-mirror /etc/apt/mirror.list

Script PostMirror :

Pour une raison que j'ignore, apt-mirror ne synchronise pas les répertoires i18n qui contiennent les paquets de traduction. Cela génére des messages d'erreurs lorque les clients tentent de réaliser un update. J'ai tenté tout d'abord de créer un script BASH avec l'utilisation de l'outil WGET mais cela ne s'est pas avéré très concluant.

Après la lecture de ce Wiki, j'ai décidé de réexploiter leur script basé sur rsync (si les répertoires i18n ne sont pas présents, il est nécessaire de les créer manuellement) :

root@miroir# cat /opt/miroir/var/postmirror.sh

#!/bin/sh

bash /opt/mirroir/var/clean.sh

rsync --recursive --times --links --hard-links --delete --delete-after rsync://debian.med.univ-tours.fr/debian/dists/wheezy/main/i18n/ /opt/miroir/mirror/ftp2.fr.debian.org/debian/dists/wheezy/main/i18n/

rsync --recursive --times --links --hard-links --delete --delete-after rsync://debian.med.univ-tours.fr/debian/dists/wheezy/contrib/i18n/ /opt/miroir/mirror/ftp2.fr.debian.org/debian/dists/wheezy/contrib/i18n/

rsync --recursive --times --links --hard-links --delete --delete-after rsync://debian.med.univ-tours.fr/debian/dists/wheezy/non-free/i18n/ /opt/miroir/mirror/ftp2.fr.debian.org/debian/dists/wheezy/non-free/i18n/

rsync --recursive --times --links --hard-links --delete --delete-after rsync://debian.med.univ-tours.fr/debian/dists/wheezy-backports/main/i18n/ /opt/miroir/mirror/ftp2.fr.debian.org/debian/dists/wheezy-backports/main/i18n/

Enfin, il est nécessaire de planifier la synchronisation du miroir toute les nuits avec l'outil CRON :

root@miroir#  cat /etc/cron.d/apt-mirror

0 5 * * * root /usr/bin/apt-mirror /etc/apt/mirror.list > /opt/miroir/var/cron.log

Et enjoy ;)

Liens :

http://wikitice.ac-versailles.fr/index.php?title=Utiliser_apt-mirror

http://www.technoaddict.fr/index.php/tag/apt-mirror/

 

Debian and Unix Addict

2 commentaires

#1 moebiuseye a dit :

A ta place, j'aurais plutôt opté pour un AptProxy.

(http://apt-proxy.sourceforge.net/)

#2 Quentin Demouliere a dit :

@moebiuseye :
Merci pour l'info, en fait sur le conseil de Dju, je suis passé à apt-cacher-ng et c'est vrai que c'est plus simple. Merci pour l'info.

Écrire un commentaire

Quelle est la dernière lettre du mot zwklp ? :