View previous topic :: View next topic |
Author |
Message |
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Namur - Belgium
|
Posted: Fri Mar 17, 2006 3:44 pm Post subject: [HOWTO] Partager son répertoire distfiles via apache2 |
|
|
Bonjour,
Je viens de réaliser celà chez moi, et c'est tres pratique.
1. Intro
Il y a plein d'avantages si vous avez plusieurs machines (virtuelles ou non) sous Gentoo en réseau local... On ne télécharge qu'une seule fois les paquets, et non pas une fois par machine. On évite de prendre de la bande passante aux mirroirs gentoo, mais également sur sa propre connexion. Et puis c'est beaucoup plus rapide de télécharger sur le réseau local plutôt que par Internet.
Un autre avantage, c'est que dans mon cas, ce partage pourrait ne pas etre actif 24h/24. Si c'est le cas (machine éteinte par exemple), alors il ira tout simplement rechercher les sources sur Internet, tout seul, comme un grand.
Il faut aussi savoir que cette machine proposant le partage ne dispose pas toujours des fichiers que j'ai besoin sur mes autres machines sur mon réseau local (mais ca fonctionne au moins pour les paquets importants qu'on à besoin partout, comme gcc, glibc, xorg, et tout ca). Dans ce cas, portage ira chercher ces fichiers sur Internet et pas sur mon petit serveur local.
Bien sur, il existe des methodes alternatives, avec des avantages et des inconvénients différents :
[*]NFS : un seul répertoire qui contient tout pour le réseau. On évite la duplication des fichiers sur chaque machine du réseau. Désavantage: le serveur NFS doit etre accessible (allumé) lorsque l'on souhaite installer ou faire une mise à jour sur une machine gentoo. Ce serveur doit disposer de suffisamment de place pour accueillir les fichiers pour chaque clients.
Pour ce howto, j'assume que vous avez déjà un serveur apache2 qui tourne correctement sur une machine Gentoo.
2. Serveur
Tout d'abord, on créée un nouveau vhost dans apache2. Ce vhost ne sera accessible que par les IP de votre réseau local : Code: | touch /etc/apache2/vhosts.d/10_portage_distfiles_vhost.conf
nano -w /etc/apache2/vhosts.d/10_portage_distfiles_vhost.conf |
Le contenu de ce fichier : Code: | <VirtualHost *:80>
# ServerName
# Vous pouvez mettre ici l'adresse que vous voulez.
# Souvenez vous en, vous en aurez besoin par la suite
# Si elle n'est pas routable sur Internet, ce n'est pas
# grave, on contournera ce problème plus loin sur les
# machines clientes.
ServerName portage.pabou.pabou.com
DocumentRoot "/var/www/portage/htdocs"
<Directory "/var/www/portage/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
# Remplacer l'ip par celle de votre sous reseau
# Dans mon cas, il s'agit de 192.168.69.0/24
Allow from 192.168.69
</Directory>
# Je ne suis pas bien sur de l'utilité des parametres de ce module ici
# Et puis vous utilisez peut-etre un alternatif à peruser.. je ne sais pas
# Chez moi, ca marche comme ca :
<IfModule peruser.c>
ServerEnvironment apache apache
</IfModule>
</VirtualHost> |
Ce fichier sera chargé automatiquement par apache2 grace à la ligne (copiée ici en dessous, mais déjà contenue dans la version de base du fichier fourni avec l'ebuild apache2) à la fin du fichier /etc/apache2/httpd.conf .. Vous n'avez donc rien à faire ici, mais je vous conseille de vérifier qu'il est bien chargé quelque part : Code: | #
# Gentoo VHosts
#
# For Gentoo we include External Virtual Hosts Files.
# Please see vhosts.d/00_default_vhost.conf for the default virtual host.
#
Include /etc/apache2/vhosts.d/*.conf |
Ensuite, nous allons créer tous les répertoires nécessaires pour le vhost : Code: | mkdir -p /var/www/portage/htdocs
ln -s /var/www/localhost/icons /var/www/portage/icons
ln -s /var/www/localhost/errors /var/www/portage/errors
ln -s /usr/portage/distfiles /var/www/portage/htdocs/distfiles |
Si vous avez déplacé votre répertoire distfiles (si vous ne savez pas si vous l'avez fait, c'est que vous ne l'avez pas fait), changez la cible du dernier lien ;)
Pareil pour les répértoires d'apache. ceux-ci sont les répertoires par défaut avec gentoo.
Vous pouvez maintenant redémarrer apache2 : Code: | /etc/init.d/apache2 restart |
3. Clients
Maintenant, passons à la configuration des clients (à répéter sur chaque client) :
dans le fichier /etc/make.conf, vous ajoutez votre serveur à la variable GENTOO_MIRRORS.. avec la syntaxe suivante : http://ServerName ou ServerName à été configuré sur le serveur
Voici un exemple chez moi : Code: | GENTOO_MIRRORS="http://portage.pabou.pabou.com ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.easynet.nl/mirror/gentoo/ ftp://ftp.belnet.be/pub/linux/gentoo" |
Et si votre variable ServerName n'est pas routable ? Et bien si vous avec ce problème, voici comment le contourner : Code: | echo "192.168.69.10 portage.pabou.pabou.com" >> /etc/hosts |
Vous remplacez l'ip par celle du serveur web, et le nom d'hote, par le meme que ServerName.
4. Conclusion
Vous pouvez faire un essai ;)
Si vous devez mettre à jour toutes vos Gentoo, pensez à le faire en premier sur le serveur. |
|
Back to top |
|
|
TGL Bodhisattva
Joined: 02 Jun 2002 Posts: 1978 Location: Rennes, France
|
Posted: Sat Mar 18, 2006 4:41 pm Post subject: |
|
|
Une suggestion : plutôt que de déclarer le mirroir local en tête des GENTOO_MIRRORS, on peut utiliser /etc/portage/mirrors, avec le type de mirroir prévu à cet effet, "local". /etc/portage/mirrors: | local http://portage.pabou.pabou.com | Cf. "man portage" pour les détails, mais en résumé, les mirroirs de type "local" sont systématiquement essayés avant les mirroirs habituels, et ont l'avantage de l'être aussi pour les paquets avec la restriction mirror. C'est à dire que si tu y as mis, par exemple, le binaire d'un quelconque gros FPS proprio, il sera bel et bien retrouvé, alors que les mirroirs habituels (GENTOO_MIRRORS) auraient eux été ignorés. |
|
Back to top |
|
|
geekounet Bodhisattva
Joined: 11 Oct 2004 Posts: 3772
|
Posted: Sun Mar 26, 2006 5:42 pm Post subject: |
|
|
Chez moi, j'ai plutôt fait ceci :
Code: | Alias /distfiles/ "/usr/portage/distfiles/"
<Directory "/usr/portage/distfiles/">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 192.168.0
</Directory> |
Je ne sais pas si ça se vaut, je débute dans la configuration d'apache, mais ça marche |
|
Back to top |
|
|
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Namur - Belgium
|
Posted: Wed Mar 29, 2006 6:18 am Post subject: |
|
|
celà se vaut ;)
La différence avec ma méthode est dans l'utilisation d'un vhost. Je trouve cela plus propre, mais sans savoir expliquer pourquoi. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|