Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
sysadmin:mirror_redirect_squid [2010/08/26 11:56]
james ajout conf jesred
sysadmin:mirror_redirect_squid [2012/10/05 17:10]
james ajout tags
Ligne 1: Ligne 1:
 +{{tag>​squid proxy jesred URL réécriture miroir debian}}
 ====== Redirection transparente vers les miroirs locaux ====== ====== Redirection transparente vers les miroirs locaux ======
  
Ligne 35: Ligne 36:
  * On ajoute son sous réseau IP dans les ACL de réécriture (adapter a votre réseau) : <​code>​echo "​192.168.0.0/​24"​ >> /​etc/​jesred.acl</​code>​  * On ajoute son sous réseau IP dans les ACL de réécriture (adapter a votre réseau) : <​code>​echo "​192.168.0.0/​24"​ >> /​etc/​jesred.acl</​code>​
 <​note>​il est possible d'​exclure des machines/​subnets en utilisant la syntaxe !192.168.0.42/​32 par exemple</​note>​ <​note>​il est possible d'​exclure des machines/​subnets en utilisant la syntaxe !192.168.0.42/​32 par exemple</​note>​
 +<​note>​C'​est par exemple une très bonne idée d'​exclure le serveur hébergeant le miroir local pour qu'il puisse se mettre à jour sur le dépot externe</​note>​
 +
 +==== Regles de réécriture ====
 +On peut maintenant écrire les règles de réécritures désirées (sous forme de regexp), cela se passe dans le fichier /​etc/​jesred/​jesred.rules.
 +  * Par exemple si comme moi vous avez un miroir local debian partiel :<​code>#​ redirection transparente sur le miroir local
 +# pour ne PAS rediriger les sources en local (nos miroirs n'ont pas les sources)
 +regex ^http://​ftp\.[a-z][a-z].debian.org/​debian/​(dists|pool)/​.*/​source/​(Release|Sources|Sources\.(bz2|gz|diff/​.*))$
 +regex ^http://​ftp\.[a-z][a-z].debian.org/​debian/​dists/​.*/​installer-.*/​.*$
 +# le reste est en local
 +regex ^http://​ftp\.[a-z][a-z].debian.org/​debian/​((dists|pool)/​.*(udeb|deb|bz2|Packages|Packages.gz|Release|Release.gpg))$ http://​debian-mirror.mondomaine.com/​debian/​\1
 +</​code>​Si vous avez de l'​espace disque et que vous avez un miroir complet (incluant les sources), il suffit de retirer les deux premières regexp qui empêchent la réécriture des adresses des paquets source : tout sera alors redirigé vers le miroir local.
 +  * Le meme principe peu bien sûr etre utilisé pour ldes dépots de securité, archive, backports, ... comme le montrent les exemples suivants : <​code>​
 +# on ne redirige pas les sources en local
 +regex ^http://​security.debian.org/​(dists|pool)/​.*/​source/​(Release|Sources|Sources\.(bz2|gz|diff/​.*))$
 +# mais le reste si
 +regex ^http://​security.debian.org/​((dists|pool)/​.*(deb|bz2|gz|Packages|Packages.gz|Release|Release.gpg|))$ http://​debian-mirror.mondomaine.com/​debian-security/​\1
 +# idem pour les backports
 +regex ^http://​www.backports.org/​debian/​(dists|pool)/​.*/​source/​(Release|Sources|Sources\.(bz2|gz|diff/​.*))$
 +regex ^http://​www.backports.org/​debian/​((dists|pool)/​.*(deb|bz2|Contents-.*gz|Packages|Packages.gz|Release|Release.gpg))$ http://​debian-mirror.mondomaine.com/​debian-backports/​\1
 +</​code>​
 +  * Le même principe fonctionnerait bien sûr sur un dépot ubuntu en adaptant les URLs, cependant je n'​utilise pas un dépot ubuntu complet (moins de postes, et donc moins de besoinse en terme d'​installations/​MAJs,​ ...) mais un dépot "​partiel"​ utilisant apt-cacher , voici les lignes utilisées pour rediriger toute demande vers l'​apt-cacher local (dont l'IP doit bien sur aussi être exclue des ACL de réécriture) pour les principaux dépots utilisés :<​code>​
 +# depots Ubuntu - redirection vers l'​apt-cacher ubuntu
 +regex ^http://​([a-z][a-z]\.archive.ubuntu.com/​ubuntu/​(dists|pool)/​.*(deb|bz2|gz|Release|Release.gpg))$ http://​ubuntu-mirror.mondomaine.com:​3142/​\1
 +regex ^http://​(security.ubuntu.com/​ubuntu/​(dists|pool)/​.*(deb|bz2|gz|Release|Release.gpg))$ http://​ubuntu-mirror.mondomaine.com:​3142/​\1
 +regex ^http://​((.*)packages.medibuntu.org/​(dists|pool)/​.*(deb|bz2|gz|Release|Release.gpg))$ http://​ubuntu-mirror.mondomaine.com:​3142/​\1
 +regex ^http://​(ppa.launchpad.net/​.*/​(dists|pool)/​.*(deb|bz2|gz|Release|Release.gpg))$ http://​ubuntu-mirror.mondomaine.com:​3142/​\1
 +regex ^http://​(old-releases.ubuntu.com/​ubuntu/​(dists|pool)/​.*(deb|bz2|gz|Release|Release.gpg))$ http://​ubuntu-mirror.mondomaine.com:​3142/​\1
 +regex ^http://​(archive.canonical.com/​(dists|pool)/​.*(deb|bz2|gz|Release|Release.gpg))$ http://​ubuntu-mirror.mondomaine.com:​3142/​\1</​code>​c'​est le logiciel apt-cacher qui se charge de distribuer le paquet directement s'il l'a en cache ou qui le récupère avant de le distribuer s'il ne l'a pas en cache. Un jour peut être, un article sur l'​installation de ce logiciel apt-cacher ;-) .
 +
 +  * contrib : il semblerait que pour pouvoir continuer à utiliser l'​upgrade-manager Ubuntu il faille les lignes suivantes dans le fichier jesred.rules :<​code>#​ I have also added two aborts in order to use upgrade-manager:​
 +abort .gpg
 +abort ReleaseAnnouncement
 +abort Index
 +</​code>​
 +
 +==== Vérification du fonctionnement ====
 +Pour prendre en compte ces modifications il faut bien sur faire recharger a squid sa configuration :<​code>/​etc/​init.d/​squid reload</​code>​
 +
 +Le bon fonctionnement peut etre vérifié en regardant dans le fichier de log /​var/​log/​squid/​jesred-rewrite.log lorsque vous tentez d'​installer un paquet, comme par exemple :
 +<​code>​
 +1282816088.239 192.168.0.65/​- http://​ftp.fr.debian.org/​debian/​pool/​main/​j/​jesred/​jesred_1.2pl1-16_amd64.deb http://​debian-mirror.mondomaine.com/​debian/​pool/​main/​j/​jesred/​jesred_1.2pl1-16_amd64.deb 9
 +1282816088.254 192.168.0.65/​- http://​security.debian.org/​pool/​updates/​main/​s/​squid/​squid-common_2.7.STABLE3-4.1lenny1_all.deb http://​debian-mirror.mondomaine.com/​debian-security/​pool/​updates/​main/​s/​squid/​squid-common_2.7.STABLE3-4.1lenny1_all.deb 11</​code>​
 +
 +
  
  
  
 FIXME continuer ;-) FIXME continuer ;-)
sysadmin/mirror_redirect_squid.txt · Dernière modification: 2014/10/28 18:33 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0