Apt-cacher

De Wiki doc


Apt-cacher est un proxy APT pour les distributions basées sur Debian. Son objectif est de servir d'intermédiaire entre les clients d'un réseau local et un dépôt de paquets externe afin de mettre en cache ces derniers et permettre une nette amélioration des performances réseau (les paquets ne sont téléchargés qu'une seule fois et redistribués par la suite depuis le cache en bénéficiant des performances du réseau local).

C'est une bonne alternative à Apt-mirror si vous ne disposez pas de centaines de gigaoctets disponibles sur votre serveur pour cet usage. De plus, la place occupée par les paquets mis en cache est bien plus optimisé puisque seul ceux dont vous avez besoins sont téléchargés.

INFORMATION

Apt-cacher a servit de base à son évolution, Apt-cacher-ng. Ce dernier se démarque par de meilleurs performances et un support étendue à d'autres distributions Linux.

Installation

apt install apt-cacher

Choisir le mode démon.

Configuration

Activer le démarrage automatique du démon avec le système

vim /etc/default/apt-cacher
AUTOSTART=1

Configuration du démon

# Utilisateur et groupe exécutant le démon
group = www-data
user = www-data

# Répertoire de stockage des paquets mis en cache
cache_dir = /var/cache/apt-cacher

# Répertoire contenant les fichiers journaux
log_dir = /var/log/apt-cacher

# Autorisations
# Par défaut (depuis la version 1.7.0), seul l'adresse de lien local peut contacter le démon.
# Afin de gérer les réseaux autorisés, vous pouvez choisir d'autoriser tout le mode avec ceci:
allowed_hosts = *
# ou choisir de filtrer plus finement en utilisant des réseaux notés comme ceci:
# 10.0.0.0/24 ou 10.0.0.0/255.255.255.0
# Il est également possible de spécifier un intervalle comme ceci:
# 192.168.0.0-63' ou '192.168.0.0 - 192.168.0.63
# L'usage de noms de domaines est également possible

# Interdictions
# Les interdictions de réseaux suivent la même logique que pour les autorisations
#denied_hosts =

# Apt-cacher peut dresser un rapport d'utilisation toute les 24h
# Il est accessible à l'adresse http://IO_SERVEUR:3142/report
#generate_reports = 1
 
# Adresse email qui s'affiche sur la page de raport
#admin_email = root@localhost

# Port d'écoute du démon (par défaut : 3142)
#daemon_port = 3142

# N'utiliser que le cache
# Apt-cacher n'effectuera aucune requêtes externe pour remplir son cache.
# Il se basera donc uniquement sur ce dernier pour servir les clients
#offline_mode = 1

# Si vous utilisez un proxy pour accéder au WEB, adaptez les paramètres suivants
#http_proxy=hostname:port
#use_proxy=1
#http_proxy_auth=username:password
#use_proxy_auth=1

# Il est possible de n'autoriser que certaines sources de paquets externes
#allowed_locations = ftp.uni-kl.de, ftp.nerim.net, debian.tu-bs.de/debian
#allowed_locations = ftp.debian.org, %PATH_MAP%
#allowed_locations = %PATH_MAP%

# Liste des architectures autorisées. Cela utilise les listes présentes dans *_files_regexps
# avec l'expression régulière %VALID_ARCHS%
#supported_archs = i386, amd64
#supported_archs = avr32, amd64, alpha, arm, arm64, armel, armhf, hppa, hurd-i386, i386, ia64, kfreebsd-amd64, kfreebsd-i386, m32r, m68k, mips, mipsel, netbsd-alpha, netbsd-i386, powerpc, powerpcspe, ppc64, s390, s390x, sh4, sparc, sparc64, x32

# N'autoriser que certaines branches d'Ubuntu
#ubuntu_release_names = dapper, edgy, feisty, gutsy, hardy, intrepid, jaunty, karmic, lucid, maverick, natty, oneiric, precise, quantal, raring, saucy, trusty, utopic, vivid, wily, xenial, yakkety

# Nettoyer le cache toute les 24h
#clean_cache = 1

Redémarrer le démon

systemctl restart apt-cacher.service

Mise en cache

Archive APT

Il est possible de demander à Apt-cacher d'ajouter à son cache les archives d'APT déjà présentes sur le disque dur. En effet, chaque fois que vous faites un apt install, les .deb téléchargés sont archivés dans </source lang="bash" inline>/var/cache/apt/archives</source>.

/usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives

ou

/usr/share/apt-cacher/apt-cacher-import.pl -r -R /var/cache/apt/archives

Paramètres:

  • -r: Crée un lien physique (copie inode)
  • -R: Exécute une copie récursive depuis le répertoire parent

INFORMATION

Les fichiers mis en cache sont présents dans /var/cache/apt-cacher.

Clients

Afin de remplir le cache, il va falloir l'utiliser (basique non ?). Pour ce faire, il faut exécutez les actions suivantes;

vim /etc/apt/apt.conf.d/00aptproxy
Acquire::http::Proxy "http://192.168.180.35:3142";

Vous pouvez également préciser votre serveur mandataire (proxy) lors de l'installation de Debian dans le champ approprié.

Autre cas d'usage: Il est aussi possible d'utiliser votre serveur comme source de paquets directement dans le fichier /etc/apt/sources.list.

Dorénavant, toute utilisation de la commande apt aura pour effet de télécharger les paquets par l'intermédiaire du proxy/cache. Lorsque ce dernier ne possède pas le paquet demandé, il le télécharge depuis les sources externes et fournis par la suite ce même paquet au client directement depuis sont cache sans le re-télécharger.

ASTUCE

Sur le serveur, un du -hs /var/cache/apt-cacher/ donnera la taille occupée par le cache.

Sources