Ir al contenido principal

Servidor de repositorios en una Red Local

Cómo mantener actualizadas varias máquinas al mismo tiempo

En situaciones en las que administrás varias máquinas, Apt puede ser de mucha ayuda ya que hace que el proceso de actualización y aplicación de los parches de seguridad para cada máquina sea muy simple. El problema es que, con el método tradicional, una vez que sale una actualización, tenés que bajar una copia de todos los nuevos paquetes para cada una de las máquinas, lo que implica un consumo fenomenal de nuestro ancho de banda y del ancho de banda del servidor oficial.

Afortunadamente, existe un método que nos permite actualizar una de las máquinas y, desde allí, actualizar el resto de las máquinas que componen nuestra red. Este método, además de reducir los costos y optimizar el uso de nuestro ancho de banda, evita la duplicación de paquetes en las distintas máquinas: todas instalan los paquetes utilizando nuestro "servidor de caché".

Cuando estás ejecutando la misma distribución en diferentes máquinas (ya sea en el trabajo, en laboratorios de computación, en "granjas" de servidores, en clusters o incluso en tu pequeña red doméstica) puede resultar útil crear un repositorio caché en tu red para que una vez descargado un paquete desde un repositorio oficial todas las demás máquinas lo descarguen desde ese repositorio caché que está almacenado en una máquina de tu red a la que llamaremos "servidor". De esta manera, las actualizaciones descargadas desde una máquina pueden ser instaladas en las demás sin necesidad de volver a descargarlas desde los repositorios oficiales.

Primero veamos algunas soluciones "no tradicionales" que NO recomiendo, pero que seguramente te vendrán a la mente a la hora de resolver esta cuestión.

Compartir /etc/apt

Cuando instalás un paquete en una distro Debian (o sus derivadas), éste se almacena localmente en el directorio '/etc/apt'. Cuando un paquete es requerido, Apt primero busca en este directorio para ver si existe una copia local (o sea, un caché), evitando así su descarga innecesaria. Como resultado de ello, a varios de Uds. seguramente se les habrá ocurrido que una buena forma de resolver el problema en cuestión podría ser elegir una computadora, que designaríamos como una suerte de servidor, que se actualizaría utilizando los repositorios oficiales, y que compartiría su directorio '/etc/apt' con el resto de las máquinas de la red. No obstante, este método podría derivar en problemas vinculados al bloqueo del archivo 'sources.list'. En general, no es la solución más utilizada ni la más conveniente.

Mover los paquetes

En vez de compartir un directorio '/etc/apt' común, otra alternativa podría ser que cada compu utilice su propio directorio local de caché pero generar un script que se ocupe de copiar los paquetes de una máquina a la otra de modo que queden todas actualizadas. Una herramienta para llevar adelante esta tarea puede ser 'apt-move', pero sinceramente no se las recomiendo porque no es lo suficientemente transparente para el usuario final. Además, puede significar una utilización completamente innecesaria de espacio en disco ya que deberán copiarse todos los paquetes en cada una de las máquinas.

Sistemas de caché dedicados

La mejor solución para este problema es la utilización de un sistema de caché dedicado. De lo que se trata, en definitiva, es de crear una copia de los servidores oficiales en una de las máquinas de tu red y luego configurar al resto de las máquinas para que, en vez de buscar las actualizaciones desde los servidores oficiales, lo hagan utilizando este caché (o copia) local.

Existe una variedad de sistemas diseñados para trabajar con Apt, incluyendo apt-cacher, apt-proxy, y apt-cached.

Aquí vamos a tratar con apt-cacher, que es el más sencillo de usar.

Apt-cacher

Apt-cacher es bien diferente de otros sistemas de caché de repositorios ya que no es un programa independiente ("stand-alone") sino que corre como un script CGI bajo Apache. Esto tiene varias ventajas, como por ejemplo, convertirlo en una herramienta pequeña y simple pero al mismo tiempo muy poderosa y, por consiguiente, más robusta porque no precisa de un código propio para el manejo de protocolos, y es muy flexible porque podés usar el mecanismo de control de acceso de Apache en caso de que quieras limitar el número de máquinas que se encuentren habilitadas para acceder al caché.

Apt-cacher sólo necesita ser instalado en una máquina, aquella que decidas que debe funcionar como tu caché local de repositorios. Luego, el resto de las computadoras de tu red deberán ser configuradas para que realicen los pedidos de actualizaciones al caché y no a los servidores oficiales.

Configuración del servidor

Para instalar basta con

sudo apt-get install apt-cacher

Este paquete tiene dependencias con apache, perl y wget, por lo que los instalará si no lo tenés previamente instalados.

Una vez instalado, es recomendable reiniciar Apache:

/etc/init.d/apache restart

Finalmente, lo único que hay que hacer es ajustar los parámetros por defecto del script. Escribí en un terminal:

sudo gedit /etc/apt-cacher/apt-cacher.conf

En general, todos los valores por defecto están bien, pero es recomendable ajustar los tres siguientes:

admin_email=mimail@miservidor
generate_reports=1
expire_hours=24

El segundo elemento es una variable de tipo booleana que determina la generación de reportes (0 no genera reportes, 1 sí los genera). El primer elemento, en cambio, es la dirección de correo electrónico a la que se enviarán los reportes creados. El tercer y último elemento determina la cantidad de horas que debe esperar Apt para verificar si hay actualizaciones disponibles en los servidores oficiales.

Si utilizás un proxy, no te olvides de agregar los siguientes elementos:

http_proxy=proxy.example.com:8080
use_proxy=1

Para verificar que funcione, podés acceder a tu caché local a través de la url http://nombre_servidor/apt-cacher/ y aparecerá una página donde se muestra la configuración de apt-cacher. Recordá que 'nombre_servidor' debe ser reemplazado por el IP de la máquina que hayas designado como 'servidor', o sea, como depositaria del caché local de paquetes.

Configuración clientes

Ahora lo único que hay que hacer es modificar los sources.list de los clientes para que pasen a través del servidor. Si el IP del servidor es 123.123.123.123, hay que añadirlo a cada línea del sources.list, y además tener cuidado y que todos hagan referencia al mismo servidor, sino el cache no tendrá efecto.

sudo gedit /etc/apt/sources.list

Nota: ¡Ojo! En Debian y sus derivados el 'sources.list' se almacena en '/etc/apt'. Sin embargo, en otras distribuciones puede ser que se almacene en otra ruta. En caso de que no encuentres el archivo siempre podés encontrarlo ingresando 'locate sources.list' en un terminal.

Una vez abierto el archivo, siendo el IP de nuestro servidor 123.123.123.123, habría que modificar todas las líneas usando el siguiente criterio:
# Originales
#deb http://ftp.us.debian.org/debian/ sid main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ sid main contrib non-free

# Modificados
deb http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid main contrib non-free
deb-src http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid main contrib non-free

Como ves, hay que agregar al comienzo de la dirección URL el IP del servidor + '/apt-cacher/'. Luego va el resto de la línea original.

Estadísticas de tráfico

Si agregaste el elemento 'generate_reports=1' en el archivo 'apt-cacher.conf', apt-cacher generará estadísticas de accesos, a las que podés acceder con el url '/apt-cacher/report'.



Si, por algún motivo, necesitás generar las estadísticas antes de las cantidad de horas establecidas en 'apt-cacher.conf', ejecutá el el siguiente comando:

/usr/share/apt-cacher/apt-cacher-report.pl

Entradas populares de este blog

Ultrastar Deluxe

El Karaoke para Linux La llegada de la Navidad significa reuniones con familiares y amigos, lo que nos lleva a buscar formas de entretenimiento. Una de ellas es el karaoke , y como no podría ser de otra manera en GNU/Linux tenemos nuestra opción Open Source, se trata de UltraStar Deluxe (para mí la mejor opción), que está basado en el primer Ultrastar aunque bastante más completo y fácil de usar. Esta aplicación es un clon libre de Singstar con el que podrás cantar cualquier canción e incluso crear la tuya propia. Si estáis interesados en instalarlo puedes añadir el repositorio para Ubuntu o bajarlo desde la página oficial en caso de usar otra distribución. sudo add-apt-repository ppa:tobydox/ultrastardx sudo apt-get update sudo apt-get install ultrastar-deluxe Una vez instalado sólo quedará añadir canciones . Como no podía ser de otra manera, existe una comunidad muy activa que nos proporciona gran cantidad de material listo para ser usado, una de ellas es Ultrastar

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar

Control PS3 en Debian, Ubuntu

INSTALAR EL CONTROL DE PLAY STATION 3 EN GNU / LINUX. EN LAS DISTRIBUCIONES DEBIAN 6.0 SQUEEZE, DEBIAN WHEEZY (TESTING), LINUX MINT DEBIAN EDITION, LINUX MINT, GUADALINEX, UBUNTU. Les voy a decir como conectar su control de Play Station 3 en Debian por medio de un cable USB, personalmente lo he probado en Debian 6.0 Squeeze (estable) y Debian Wheezy (testing), no lo he probado en Linux Mint Debian Edition (LMDE), pero no tendría porque no funcionar. En el caso de Ubuntu y sus derivadas supongo que también debería funcionar, no lo he probado porque no uso dicha distro, pero los comandos los tome de un tutorial para ella, no es “copy and paste” , solo copie los comandos, el resto es de mi experiencia personal. NOTA PARA USUARIOS DE LINUX MINT, GUADALINEX Y UBUNTU: Los comandos que voy a poner son para Debian y Linux Mint Debian Editon, para el caso de Ubuntu y derivados ya saben que los comandos como root se ejecutan con “sudo”. Además creo q