Intéressé par des cours d'informatique en ligne ?
Visitez mon nouveau site https://www.yesik.it !

"Bon, il est temps de faire une mise à jour de nos machines Debian". Sauf que vous n'avez peut-être pas envie d'utiliser toute votre bande passante Internet pour télécharger les paquets .deb sur chaque machine. Sans parler du temps que cela va prendre... "Ce qui serait bien, ça serait d'avoir quelque part sur le réseau un cache pour les paquets Debian". Re-sauf que vous n'avez pas envie d'installer – et administrer – un serveur mandataire (proxy) juste pour ça.

apt-proxy est la solution. C'est un utilitaire qui permet de mettre en cache les paquets que vous téléchargez avec apt-get. Nous allons donc voir dans cet article comment installer apt-proxy et l'utiliser comme cache pour les mises à jour des machines sous Debian dans un réseau local.

Attention:

Quelques temps après avoir installé apt-proxy, j'ai remarqué que lorsque le téléchagement d'un paquet est interrompu pour une raison ou une autre, le proxy reprend ce téléchargment à zéro. Il n'est pas capable de reprendre au point où il s'est interrompu. Comme c'est un problème sur mon réseau, je me suis reporté plutôt sur apt-cacher-ng:

A vous de voir quel produit sera le plus adapté à votre cas particulier...

Installer apt-proxy

Est-ce que cela méritait vraiment une section à part entière? A vous d'en juger:

sh# apt-get install apt-proxy

Et voilà. C'est fait... A partir de maintenant, apt-proxy est à l'écoute sur le port 9999 de la machine locale. Et à partir de maintenant, apt-proxy est prêt à recevoir les requêtes des machines clientes. Ceci dit, vous pouvez tout de même faire un brin de configuration. Juste histoire d'en adapter le fonctionnement à vos besoins spécifiques.

Configuration de apt-proxy

Toute la configuration se fait dans le fichier /etc/apt-proxy/apt-proxy-v2.conf.

La plupart des options s'explique d'elle-même. Et les valeurs par défaut sont généralement adaptées. Les seules que vous souhaiterez certainement modifier tout de suite sont celles relatives aux backends. C'est à dire les serveurs sources qui seront utilisés pour télécharger les paquets.

Ici, comme je suis en France, j'ai changé pour des miroirs plus proches de chez moi:

[debian]
backends =
        http://ftp.fr.debian.org/debian
        http://ftp.de.debian.org/debian
        http://ftp2.de.debian.org/debian
        http://ftp.uk.debian.org/debian
        http://ftp.us.debian.org/debian

Note:

Les serveurs sont utilisés par ordre de préférence du premier au dernier.

Vous voudrez sans doute aussi choisir un serveur proche de chez vous pour les mises à jour de sécurité:

[security]
backends =
        http://ftp2.de.debian.org/debian-security
        http://security.debian.org/debian-security

N'hésitez pas non plus à jeter un oeil aux autres sections (entre crochets [...]). Il vous sera peut-être utile d'en modifier certaines. Ainsi, pour ma part, comme j'utilise des paquets issus de backport.org, j'ai enlevé le commentaire (;) devant la section correspondante et j'ai modifié la liste des serveurs ainsi:

[backports.org]
backends =
        http://ftp.de.debian.org/backports.org
        http://backports.org/debian

Après toute modification du fichier apt-proxy-v2.conf il est nécessaire de redémarrer apt-proxy:

sh# /etc/init.d/apt-proxy restart
Stopping apt-proxy.
Starting apt-proxy.

Et sur les clients

Maintenant que votre proxy apt est installé et configuré, reste à configurer les clients. Faites le tour de vos machines (y compris celle sur laquelle est installé apt-proxy) et modifiez le fichier /etc/apt/source.list. L'idée étant de remplacer tous les serveurs sources par votre proxy (port 9999). Ce qui donnera par exemple:

[...]
deb http://adresse_du_proxy_apt:9999/debian lenny main
deb http://adresse_du_proxy_apt:9999/debian lenny non-free

deb http://adresse_du_proxy_apt:9999/security lenny/updates main contrib
deb-src http://adresse_du_proxy_apt:9999/security lenny/updates main 

deb http://adresse_du_proxy_apt:9999/backports.org lenny-backports main non-free
deb-src http://adresse_du_proxy_apt:9999/backports.org lenny-backports main non-free
[...]

Note:

Remarquez que chaque url se termine par un répertoire (/debian, /security, /backports.org). C'est ce qui fait l'association avec les sections (entre crochet) dans la configuration d'apt-proxy.

Et voilà: c'est fini. Au prochain apt-get vos clients utiliseront le proxy. Et celui-ci gardera en cache les paquets téléchargés. Pensez un peu à tout ce temps et cette énergie économisés...