Un bon truc quand on a des containers

Avoir des containers, c'est cool et c'est plus sécurisé qu'une installation tout en un, mais quand on a une mise à jour sur un des containers, on doit souvent la faire sur chacun. Et ça, ça peut prendre du temps si on n'a pas beaucoup de bande passante (chez soi par exemple).

Même si mon serveur est en datacenter, je ne vois pas bien l'intérêt de gaspiller des ressources pour faire la même chose une dizaine de fois.

C'est donc là qu'intervient apt-cacher-ng qui cachera les paquets pour l'ensemble 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 directement par apt-cacher-ng.

Après l'avoir installé grâce à apt-get sur le container que vous voulez ou sur le dom0, ou une autre machine de votre appartement, il suffit d'écrire ceci dans le fichier /etc/apt/apt.conf.d/01proxy des machines qui doivent profiter 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 retrouver et contacter le serveur en question.

Sécurité

Comme ça, apt-cacher-ng est ouvert à tout vent. Si vous avez installé ça sur un serveur, c'est pas cool. Donc le firewall est de rigueur (port 3142, vous vous en doutez) ou, si vous avez utilisé ça dans un réseau de containers, vous pouvez forcer l'IP d'écoute d'apt-cacher pour que seul le réseau local soit à même de le contacter (l'IPv6 n'a pas que des avantages).

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

BindAddress: 192.168.1.12

À noter qu'il existe aussi apt-cacher qui permet (au niveau sécurité) de définir des hôtes à servir et d'autres à refuser, mais celui-ci a plus de dépendances et apt-cacher-ng est une réécriture de celui-ci pour consommer le moins de ressources possibles. À vous de voir.