vendredi 9 février 2007

Installation d'un miroir Debian Etch

Installation d'une Etch depuis un cdrom netinst.
Lancement de l'installation par « installgui » pour avoir un environnement graphique
Pas de paquet installer par défaut (décocher « Bureau graphique » et « Système de base »).
Toute l'installation sur un disque dur avec « / », « swap » et « /home ». Le tout en ext3.
Nom de la machine « mirroir », domaine « votredomaine ».
Le réseau est configuré en dhcp.
A la fin de l'installation classique, les paquets suivants ont été rajoutés :
apt-get install ssh : installation du serveur ssh pour prise de main à distance
apt-get install links2 : pour avoir un navigateur internet en mode texte et éventuellement en mode
graphique en lui passant le paramètre « -g ».
apt-get install apache2 : installation du serveur web apache2 pour pouvoir distribuer les paquetages par le protocole http.
Installation à proprement parler du miroir.
On va faire un utilisateur dédié à cette tache:
apt-get install debmirroir : logiciel qui permet de faire les mirroirs écrit en perl
groupadd mirroir : ajout d'un groupe « mirroir »
useradd -g mirroir -c « Mirroir Debian » mirroir : ajout d'un utilisateur « mirroir » avec un
commentaire « Mirroir Debian » et comme groupe principal « mirroir »
mkdir -p /home/mirroir/debian : création du répertoire de l'utilisateur « mirroir » et d'un sous -répertoire « debian » qui va contenir le mirroir
chown -R mirroir:mirroir /home/mirroir/ : changement des droits sur le répertoire « /home/mirroir »
A ce moment là, il faudrait ajouter une clé pgp pour la vérification des paquets. Aprés plusieurs
essais, pas de solutions (installation du paquetages debian-keyrings, téléchargement direct de clé sur internet => la signature au moment du lancement de debmirror n'est pas vérifié).
Solution adopté: pas de vérification de la clé gpg à l'installation du mirroir par debmirroir (moins
sécurisé mais ca fonctionne car le test d'une installation d'une etch depuis le mirroir fonctionne !)
La commande pour la création du mirroir est donc la suivante :
su mirroir -c « debmirror -v /home/mirroir/debian --progress --nosource --host=ftp.fr.debian.org --root=/debian --dist=etch --section=main,main/debian-installer,contrib,non-free --arch=i386 --passive --cleanup --ignore-release-gpg »
La commande est à saisir sur une seule ligne. Cela va lancer le téléchargement d'environ 16Go de
données donc soyez patient!! Le téléchargement peut être interrompu en appuyant sur ctrl-C puis
repris en lancant la même commande.
En gros, on ne télécharge pas les sources, le téléchargement se fait depuis ftp.fr.debian.org , la
distribution choisie est « etch » (sarge pour la future-ex stable), les sections standards (main, contrib et non-free), l'architecture (i386 ou amd64 ou ia64). De toute facon lire la page man de debmirror : man debmirror et éventuellement mettre en place son fichier de conf dans /etc/debmirror.conf.
Tous les renseignements complémentaires dans /usr/share/doc/debmirror. Une fois le mirroir fait. Il faut modifier un fichier de configuration d'apache:
nano /etc/apache2/sites-available/default
et rajouter la section suivante à la fin du fichier de conf (avant la ligne Alias /debian « /home/mirroir/debian »)
Options Indexes Multiviews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from all

Il faut créer un lien symbolique entre etch et testing. Certainement à changer en un lien etch vers stable quand celle-ci sera déclaré stable:
cd /home/mirroir/debian/dists/
ln -s etch testing
Relancez apache par : /etc/init.d/apache2 force-reload
Vérifiez que ca fonctionne avec : links2 http://localhost/debian/ ou alors encore mieux depuis un poste sur le réseau avec firefox en pointant sur http://addr_ip_mirroir/debian/ Attention cette configuration est trop permisive. Il faut changer « Allow from all » par « Allow from addr_ip_reseau_etab ». Pour mettre à jour le mirroir, mettre dans un script shell, la commande debmirroir précédente et la lancer régulièrement avec cron avec une commande du style:
/root/bin/mirroir.etch > /var/log/mirroir/etch.log 2>&1 : si le fichier batch s'appelle «mirroir.etch », le fichier de log sera alors créer dans /var/log/mirroir/etc.log
C'est fini pour le serveur.
Pour que le client s'installe et fasse ces mises à jour depuis ce mirroir, il faut au moment de l'installation lors du choix de la source des paquets prendre l'option « personnaliser » puis ensuite taper l'adresse ip du serveur mirroir. Ne pas toucher au reste.
Après l'install il faudra tout de même modifier le fichier /etc/apt/sources.list en modifiant la ligne etch main en etch main contrib non-free puis faire un apt-get update puis apt-get upgrade.