Différences
Ci-dessous, les différences entre deux révisions de la page.
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 14:35] james mise en page section regles de reecriture |
sysadmin:mirror_redirect_squid [2014/10/21 17:25] james [Regles de réécriture] typo regexp |
||
---|---|---|---|
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 ====== | ||
Dans un article précédent nous avons vu comment [[sysadmin:debian_mirror|créer un miroir debian local]]. | Dans un article précédent nous avons vu comment [[sysadmin:debian_mirror|créer un miroir debian local]]. | ||
- | Nous allons maintenant aller plus loin et effectuer une redirection transparente vers ce miroir. | + | Nous allons maintenant aller plus loin et effectuer une redirection transparente vers ce miroir. Note que dans la suite de cet article quand on utilisera le terme "miroir" il pourra s'agir soit d'un miroir "complet" soit bien d'un miroir partiel (apt-cacher-ng, apt-cacher...), les deux étant fonctionnellement identiques pour ce qui nous intéresse. |
L'avantage est donc de n'avoir aucun travail à effectuer sur les postes : ils utilisent toujours les dépots classiques, comme par exemple "ftp.fr.debian.org" mais sont redirigés silencieusement vers le dépôt local, d'où des gains énormes en bande passante et en simplicité. | L'avantage est donc de n'avoir aucun travail à effectuer sur les postes : ils utilisent toujours les dépots classiques, comme par exemple "ftp.fr.debian.org" mais sont redirigés silencieusement vers le dépôt local, d'où des gains énormes en bande passante et en simplicité. | ||
Ligne 13: | Ligne 14: | ||
Nous allons nous baser sur : | Nous allons nous baser sur : | ||
- | * un proxy web (squid) configuré en mode transparent (peut etre un jour un article la dessus) | + | * un proxy web ([[http://www.squid-cache.org/|squid]]) configuré en mode transparent (peut etre un jour un article la dessus) |
- | * une réécriture d'URL au sein de ce proxy | + | * une réécriture d'URL au sein de ce proxy via jesred |
- | * tout ce petit monde sera installé comme à l'accoutumée sur une Debian Stable (lenny a l'heure actuelle) | + | * tout ce petit monde sera installé comme à l'accoutumée sur une Debian Stable (<del>lenny a l'heure actuelle</del>wheezy pour la mise a jour de cet article) |
===== Installation ===== | ===== Installation ===== | ||
- | Cette etape est simple : il suffit d'installer //jesred// , le module qui nous servira a réécrire les URL au niveau du proxy squid. | + | Cette etape est simple : il suffit d'installer //[[http://www.linofee.org/~jel/webtools/jesred/|jesred]]// , le module qui nous servira a réécrire les URL au niveau du proxy squid. |
<code>apt-get install jesred</code> | <code>apt-get install jesred</code> | ||
Ligne 25: | Ligne 26: | ||
==== configuration de squid ==== | ==== configuration de squid ==== | ||
Pour activer la réécriture d'URL il faut ajouter des directives dans le fichier de conf de squid ( /etc/squid/squid.conf) :<code> | Pour activer la réécriture d'URL il faut ajouter des directives dans le fichier de conf de squid ( /etc/squid/squid.conf) :<code> | ||
- | cat << EOF >> /etc/squid/squid.conf | + | cat << EOF >> /etc/squid3/squid.conf |
# redirection transparente pour apt-cacher debian et ubuntu | # redirection transparente pour apt-cacher debian et ubuntu | ||
redirect_program /usr/lib/squid/jesred | redirect_program /usr/lib/squid/jesred | ||
Ligne 32: | Ligne 33: | ||
==== configuration de jesred ==== | ==== configuration de jesred ==== | ||
- | * On active les logs de reecriture d'URL pour débugguer plus facilement :<code>sed -i -e "s,# rewrite_log =,rewrite_log =," /etc/jesred.conf</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> | + | * On active les logs de reecriture d'URL pour débugguer plus facilement :<code> |
+ | sed -i -e "s,# rewrite_log =,rewrite_log =," /etc/jesred.conf</code> | ||
+ | * Si vous êtes sous debian wheezy avec squid3 au lieu de squid, adapter les chemins de log :<code> | ||
+ | sed -i -e "s,/var/log/squid/,/var/log/squid3/," /etc/jesred.conf</code> | ||
+ | * On ajoute son sous réseau IP dans les ACL de réécriture (adapter a votre réseau : format X.Y.Z.T/masque classique) : <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> | <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> | ||
Ligne 44: | Ligne 49: | ||
regex ^http://ftp\.[a-z][a-z].debian.org/debian/dists/.*/installer-.*/.*$ | regex ^http://ftp\.[a-z][a-z].debian.org/debian/dists/.*/installer-.*/.*$ | ||
# le reste est en local | # 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 | + | 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. | </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> | * Le meme principe peu bien sûr etre utilisé pour ldes dépots de securité, archive, backports, ... comme le montrent les exemples suivants : <code> | ||
Ligne 50: | Ligne 55: | ||
regex ^http://security.debian.org/(dists|pool)/.*/source/(Release|Sources|Sources\.(bz2|gz|diff/.*))$ | regex ^http://security.debian.org/(dists|pool)/.*/source/(Release|Sources|Sources\.(bz2|gz|diff/.*))$ | ||
# mais le reste si | # 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 | + | 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 | # 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)/.*/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 | + | 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> | </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> | * 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> | ||
Ligne 70: | Ligne 75: | ||
</code> | </code> | ||
- | ==== Vérification du fonctionnement ==== | + | ===== 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> | + | Pour prendre en compte ces modifications il faut bien sur faire recharger a squid sa configuration :<code>/etc/init.d/squid3 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 : | + | Le bon fonctionnement peut etre vérifié en regardant dans le fichier de log /var/log/squid3/jesred-rewrite.log lorsque vous tentez d'installer un paquet, comme par exemple : |
<code> | <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.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> | 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 ;-) |