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: