Apt-cacher-ng : l’ou­bli

J’ai oublié de le mention­ner dans l’ar­ticle d’hier : plutôt que le créer le fichier /etc/apt/apt.conf.d/01proxy, vous pouvez modi­fier le fichier /etc/apt/sources.list comme ceci :

deb http://IP_du_serveur_choisi:3142/ftp.fr.debian.org/debian/ stable main

L’un ou l’autre, c’est vous qui voyez. (et on peut rempla­cer ftp.fr.debian.org par le miroir qu’on veut bien sûr)

Un bon truc quand on a des contai­ners

Avoir des contai­ners, c’est cool et c’est plus sécu­risé qu’une instal­la­tion tout en un, mais quand on a une mise à jour sur un des contai­ners, on doit souvent la faire sur chacun. Et ça, ça peut prendre du temps si on n’a pas beau­coup de bande passante (chez soi par exemple).

Même si mon serveur est en data­cen­ter, je ne vois pas bien l’in­té­rêt de gaspiller des ressources pour faire la même chose une dizaine de fois.

C’est donc là qu’in­ter­vient apt-cacher-ng qui cachera les paquets pour l’en­semble des clients : une fois qu’un client a demandé un paquet Debian, celui-ci ne sera pas télé­chargé de nouveau pour les autres clients, il sera servi direc­te­ment par apt-cacher-ng.

Après l’avoir installé grâce à apt-get sur le contai­ner que vous voulez ou sur le dom0, ou une autre machine de votre appar­te­ment, il suffit d’écrire ceci dans le fichier /etc/apt/apt.conf.d/01proxy des machines qui doivent profi­ter d’apt-cacher-ng (dont celle où il est installé):

Acquire::http { Proxy "http://IP_du_serveur_choisi:3142"; };

Bon, l’IP ou le nom de la machine, pourvu que la machine qui contient ça puisse s’y retrou­ver et contac­ter le serveur en ques­tion.

Sécu­rité

Comme ça, apt-cacher-ng est ouvert à tout vent. Si vous avez installé ça sur un serveur, c’est pas cool. Donc le fire­wall est de rigueur (port 3142, vous vous en doutez) ou, si vous avez utilisé ça dans un réseau de contai­ners, vous pouvez forcer l’IP d’écoute d’apt-cacher pour que seul le réseau local soit à même de le contac­ter (l’IPv6 n’a pas que des avan­tages).

Pour ça, il faut modi­fier /etc/apt-cacher-ng/acng.conf et mettre un truc comme ça (à adap­ter à votre cas bien sûr):

BindAddress: 192.168.1.12

À noter qu’il existe aussi apt-cacher qui permet (au niveau sécu­rité) de défi­nir des hôtes à servir et d’autres à refu­ser, mais celui-ci a plus de dépen­dances et apt-cacher-ng est une réécri­ture de celui-ci pour consom­mer le moins de ressources possibles. À vous de voir.