APT-Cacher-ng: Repositorio local cacheado

Buenas a tod@s, en este post, explicaré como crear un repositorio caché. Esto viene bien, si por ejemplo tenemos varias máquinas a las que aprovisionamos con puppet y tardan demasiado cada vez que tenemos que aprovisionarlas con paquetes nuevos ya que se los descargan todos de internet. Entonces la idea es que nuestro repositorio caché se descargue todo el software la primera vez que hace alguno una petición, y luego configurando en cada cliente un apt-proxy o directamente en el source.list., que tiren todos sobre estos paquetes, evitando así que tengan que descargarlos otra vez.

Hay que matizar, que hay una diferencia entre un repositorio caché y un repositorio mirror. En el mirror te descargaras todo el repositorio y lo mantienes actualizado haciendo que los clientes se conecten a este como un repositorio normal. Los pros son que la 1 vez también va a ir rápido porque ya tiene todos los paquetes descargados, la contra que hay que tener mucho espacio para gestionar todos los paquetes 150GB-200GB aprox. En cambio el caché solo se descarga los paquetes que se solicitan. La ventaja principal es que no requieres tanto espacio y la desventaja que la primera vez que se descargue ese paquete o actualizaciones, tardará un poco mas.

La instalación es muy sencilla, solo hay que instalar apt-cacher-ng configurarlo un poco y configurar el apt-proxy o el source.list de los clientes. Empezamos.

Servidor

 

Instalación

Instalar apt-cacher-ng

apt install apt-cacher-ng

Configuración

Editar el archivo de configuración

vim /etc/apt-cacher-ng/acng.conf
#Hacer que escuche en todas las direcciones
BindAddress: 0.0.0.0

#Comentar los remap que no se van a utilizar
Remap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian # Debian Archives
Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu # Ubuntu Archives
Remap-debvol: file:debvol_mirror*.gz /debian-volatile ; file:backends_debvol # Debian Volatile Archives
#Remap-cygwin: file:cygwin_mirrors /cygwin # ; file:backends_cygwin # incomplete, please create this file or specify preferred mirrors here
#Remap-sfnet:  file:sfnet_mirrors # ; file:backends_sfnet # incomplete, please create this file or specify preferred mirrors here
#Remap-alxrep: file:archlx_mirrors /archlinux # ; file:backend_archlx # Arch Linux
#Remap-fedora: file:fedora_mirrors # Fedora Linux
#Remap-epel:   file:epel_mirrors # Fedora EPEL
#Remap-slrep:  file:sl_mirrors # Scientific Linux
#Remap-gentoo: file:gentoo_mirrors.gz /gentoo ; file:backends_gentoo # Gentoo Archives

#Activar el verbose log
VerboseLog: 1

# Excluir los gz
VfilePatternEx:.*.gz

#Habilitar el demonio
PidFile: /var/run/apt-cacher-ng/pid

Reiniciar el servicio

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

Con esto, el servidor ya estaría

Cliente

 

Configuración

Añadir el apt-proxy.

vim /etc/apt/apt.conf.d/90-apt-proxy.conf 
   Acquire::http::Proxy "http://repos.ichasco.com:3142";

O también otra opción para configurarlo, es directamente desde el source.list añadiendo nuestro repo, seguido de /repo_internet

vim /etc/source.list
deb http://repos.ichasco.com:3142/ftp.debian.org/debian stable main contrib non-free

Y con esto ya estaría configurado!

El directorio donde se guardan todos los paquetes es:

/var/cache/apt-cacher-ng/<repo>

Si se quiere ver lo que está descargando en todo momento, se puede revisar de la siguiente manera

tail -f /var/log/apt-cacher-ng/apt-cacher.log

También se puede acceder desde la web para configurar ciertos parámetros y ver estadísticas

http://repos.ichasco.com:3142/acng-report.html

Links:

http://www.tecmint.com/apt-cache-server-in-ubuntu/

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *