Le but est d'accélérer l'installation et/ou la mise-à-jour de machines sous Debian GNU/Linux. Ce miroir fournit les paquetages de base, ceux des mises-à-jour de sécurité, ceux de Christian Marillat et enfin ceux de Blackdown pour Java.
Toute la configuration se fait sur une machine en Debian Sarge (appelée mirror-srv). Nous avons besoin d'un serveur Apache (apache2 ici), de debmirror, de cron et logrotate ; les deux derniers sont installés par défaut.
On commence par installer ce serveur, via la méthode habituelle :
# apt-get install apache2
Dans le fichier /etc/apache2/sites-available/[mon-site|default], on rajoute la définition du répertoire de stockage des miroirs :
# # Raccourci vers les miroirs locaux # Alias /mirrors /var/mirrors # # Repertoire des miroirs locaux # <Directory /var/mirrors> AllowOverride None Options -Indexes deny from all allow from [mon-sous-reseau] </Directory>
Il suffit ensuite d'activer le site, en éditant le fichier de démarrage par défaut d'apache2 (/etc/default/apache2) pour mettre la variable NO_START à 0, et lançant le service :
# /etc/init.d/apache2 start
debmirror est disponible via la méthode habituelle :
# apt-get install debmirror
Le fichier de configuration /etc/debmirror.conf que j'utilise est le suivant. Pour l'explication des valeurs, voir la page de manuel de debmirror, très facile à lire. L'idée générale est que je prends tous les paquets via http, et ne prend que ceux pour architecture i386, sans les sources ; les autres spécifications (site de téléchargement, sections et distribution) seront indiquées au lancement de debmirror.
# /etc/debmirror.conf # Output options $verbose=1; $progress=0; $debug=0; # Download options # $host="ftp.fr.debian.org"; # $user="anonymous"; $remoteroot=""; $download_method="http"; # @dists="sarge"; # @sections="main,main/debian-installer,contrib,non-free"; @arches="i386"; # @extra_dirs=""; # @ignores=""; # @excludes=""; # @includes=""; # @excludes_deb_section=""; # @limit_priority=""; $skippackages=0; $getcontents=0; $do_source=0; $max_batch=0; # Security/Sanity options $ignore_release_gpg=1; $ignore_release=0; $check_md5sums=0; $ignore_small_errors=0; # Cleanup $cleanup=1; $post_cleanup=0; # Locking options $timeout=300; # Rsync options $rsync_batch=200; $rsync_options="-aIL --partial"; # FTP/HTTP options $passive=0; # $proxy=""; # Dry run $dry_run=0; # The config file must return true or perl complains. # Always copy this. 1;
J'ai ensuite écrit un petit script, que j'appelle tous les jours par cron. Ce script va lancer la replication des paquets de base de sarge, des mises-à-jour de sécurité, de C. Marillat et enfin de Blackdown pour Java. À chaque lancement, debmirror va lire les valeurs par défaut dans /etc/debmirror.conf, et les arguments supplémentaires indiquent les variations selon les sites sources. J'ai appelé ce script mirror.sarge, et l'ai placé dans /root/bin, avec les droits d'éxéction. Son contenu est le suivant :
#!/bin/sh
set -x
#
# Standard mirror
#
debmirror -v \
--host=ftp.fr.debian.org \
--root="/debian" \
--dist="sarge" \
--section="main,main/debian-installer,contrib,non-free" \
/var/mirrors/debian
#
# debian-security
#
debmirror -v \
--host=security.debian.org \
--dist="sarge/updates" \
--section="main,contrib,non-free" \
/var/mirrors/debian-security
#
# debian-marillat
#
debmirror -v \
--host=www.debian-multimedia.org \
--dist="sarge" \
--section="main" \
/var/mirrors/debian-marillat
#
# debian-java
#
debmirror -v \
--host=mirrors.ibiblio.org \
--root="pub/mirrors/blackdown/debian/" \
--dist="sarge" \
--section="non-free" \
/var/mirrors/debian-java
Pour le lancement automatique par cron, j'ai créé un répertoire de traces spécifique /var/log/mirror, et j'ai rajouté la ligne suivante dans la crontab de root :
0 8 * * * /root/bin/mirror.sarge > /var/log/mirror/sarge.log 2>&1
Enfin, pour la rotation des traces quotidiennes, avec conservation pendant une semaine, j'ai créé le fichier /etc/logrotate.d/mirror, avec le contenu suivant :
/var/log/mirror/*.log {
daily
missingok
rotate 7
compress
notifempty
sharedscripts
}
Sur les postes clients, pour utiliser ces miroirs, il suffit de placer les lignes suivantes dans /etc/apt/sources.list :
# mirrored sources deb http://mirror-srv/mirrors/debian sarge main contrib non-free deb http://mirror-srv/mirrors/debian-security sarge/updates main contrib non-free deb http://mirror-srv/mirrors/debian-marillat stable main deb http://mirror-srv/mirrors/debian-java sarge non-free
Dernière modification : Saturday January 31, 2009, Nicolas KOWALSKI
|
|
|
|
|