Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] Partager son répertoire distfiles via apache2
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Namur - Belgium

PostPosted: Fri Mar 17, 2006 3:44 pm    Post subject: [HOWTO] Partager son répertoire distfiles via apache2 Reply with quote

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
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Sat Mar 18, 2006 4:41 pm    Post subject: Reply with quote

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
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772

PostPosted: Sun Mar 26, 2006 5:42 pm    Post subject: Reply with quote

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
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Namur - Belgium

PostPosted: Wed Mar 29, 2006 6:18 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
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