Mise en place d’un cache de paquets pour votre LAN

I. Présentation

On a tendance à télécharger et mettre à jour les paquets des applications Linux sur chacun des PC sauf que cela peut être long et surtout gourmand en terme de bande passante. C'est pour cela qu'il peut être intéressant d'héberger sur un des PC un cache de paquets, ce qui permettra d'éviter de télécharger plusieurs fois le même paquet. En effet, les autres machines n'auront qu'à se connecter au PC qui gère le cache de paquets pour récupérer les paquets nécessaires.

Le "serveur" qui s'occupe de la gestion du cache des paquets est une sorte de "proxy APT", APT faisant référence à Aptitude, un gestionnaire de paquets Linux.

Ce tutoriel va se dérouler en 3 étapes : le principe de fonctionnement du paquet, la configuration du serveur et la configuration des machines du LAN.

II. Comment ca marche ?

  •   Une machine client a besoin d'un paquet...on lance la commande apt-get install nom_du_paquet.
  •   La requête arrive au serveur.
  •   Le serveur regarde dans son cache s'il a déjà le paquet réclamé par le client.
  •   S'il l'a il transmet le paquet vers la machine cliente, à l'inverse s'il ne l'a pas il le télécharge puis le met dans son cache et le transmet au client.

II. Préparation du serveur (PC qui gère le cache)

Sur le serveur nous allons installer et configurer le paquet "apt-cacher-ng" qui est l'application qui permet de gérer le cache. Ensuite, nous verrons comment ajouter un backend sur notre serveur.

A.  Mise en place d'apt-cacher-ng

Pour installer le paquet saisissez la commande suivante :

apt-get install apt-cacher-ng

Ensuite, éditez le fichier de configuration suivant :

/etc/apt-cacher-ng/acng.conf

Dans ce fichier de configuration on peut voir plusieurs paramètres, parmi lesquels :

  •  Le répertoire pour le cache : /var/cache/apt-cacher-ng,
  •  Le répertoire pour les journaux : /var/log/apt-cacher-ng,
  •  Le port sur lequel le programme tourne : 3142. On vous indique d'ailleurs que pour émuler le comportement d'apt-proxy (une autre application de ce type) le numéro de port doit être 9999.
  •  On vous indique également dans un commentaire que par défaut l'application écoute sur toutes les interfaces avec tous les protocoles et que pour modifier cela il faut utiliser la directive "BindAddress".

 Vous pouvez également préciser si vous utilisez un proxy pour accéder à internet grâce à la directive "proxy" prévue à cet effet.

  •  Les backends permettent d'indiquer les différents miroirs, les différentes sources à utiliser pour télécharger les paquets. Ils sont définit par ce type de ligne :
Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu
  • ReportPage : vous indique l'URL à utiliser pour accéder à la page web de rapport sur l'état de l'application.
ReportPage: acng-report.html

Les directives du fichier de configuration n'ont pas à être modifier, il faut surtout bien comprendre à le rôle de chacune d'entres elles.

B. Ajouter un backend

Comme je l'ai dis précédemment, un backend sert à indiquer les miroirs à utiliser pour récupérer les paquets. Il est essentiel d'avoir des backends qui vous permettront d'avoir accès aux applications dont vous allez avoir besoin à plus ou moins long terme.

  •  Explication sur la déclaration d'un backend :

Pour rappel, on définit un backend de la manière suivante :

Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu

Ce backend fait référence à deux fichiers : ubuntu_mirrors et backends_ubuntu. Ces deux fichiers contiennent les URL vers les dépôts où sont stockés les paquets.

Exemple avec le fichier backends_ubuntu :

ngcache

  •  Ce qu'il faut faire pour ajouter un backend :

Pour ajouter un backend il faut donc indiquer dans le fichier acng.conf le chemin vers le fichier qui contient les URL. Il faudra également créer ce fichier et y écrire les URL vers les dépôts. La ligne à ajouter dans le fichier acng.conf ressemblera à ceci :

Remap-nom: file:nom_fichier_url /description

 

Dans le fichier des URL, écrivez une URL par ligne, sans ajouter de caractères spécifiques en fin de ligne. Si dans acng.conf vous avez mis "file:ubuntu_soft" il faudra appeler votre fichier "ubuntu_soft".

Tous les fichiers utilisés par les backends se trouve dans le répertoire indiqué ci-dessous. Ainsi, le fichier du backend que l'on ajoute doit y figurer également.
/etc/apt-cacher-ng/

- Redémarrez le serveur :

Pour que l'application prenne en compte nos modifications il faut la redémarrer grâce à la commande suivante :

/etc/init.d/apt-cacher-ng restart

 

IV. Configuration des machines clientes (du LAN)

A. Spécifier l'utilisation d'un proxy-apt

Nous allons spécifier explicitement sur chacune des machines clientes qu'il y a un serveur qui gère le cache et qu'il doit servir de proxy-apt. Pour se faire créer le fichier suivant :

/etc/apt/apt.conf.d/02proxy

A l'intérieur de se fichier écrivez ceci :

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

Pensez à remplacer "192.168.1.101" par l'IP de votre serveur gérant le cache des paquets. Remarque : vous devez aussi créer se fichier avec le même contenu (ou éventuellement mettre localhost à la place de l'adresse IP) sur le serveur gérant le cache pour que ça fonctionne.

B. Mise à jour de la liste des paquets

Sur chacune des machines clients on va mettre à jour la liste des paquets mais avant cela, il faut le faire sur le serveur pour qu'il mette à jour son cache. Saisissez la commande suivante sur le serveur puis une fois que c'est terminé faites-le sur les clients :

apt-get update

 

On peut voir que sur les serveur c'est assez long... :
ngcache2

Par contre, sur les machines clientes ca devient vraiment rapide étant donné qu'il n'y a plus d'accès à internet mais uniquement au serveur :

ngcache3

N'hésitez pas à poser vos questions dans le forum ou en laissant un commentaire.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5500.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.