[Ubuntu-sv] Servidor de repositorios en una Red Local

Celvin Rivas josecelvin en gmail.com
Lun Jun 28 04:58:24 BST 2010


---------- Forwarded message ----------
From: Chico Monte <chicomonte at ubuntusv.org>
Date: 2010/6/27
Subject: [Chico Monte] Servidor de repositorios en una Red Local
To: josecelvin at gmail.com


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

 <http://usemoslinux.blogspot.com/search/label/ubuntu>
 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/aptCuando 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 paquetesEn 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é dedicadosLa 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-cacherApt-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 servidorPara 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 at 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 clientesAhora 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áficoSi 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'.

 <http://www.debianuniverse.com/chapterimages/19/apt-cacher-report.png>


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



--
Publicado por Chico Monte para Chico
Monte<http://chicomonte.blogspot.com/2010/06/servidor-de-repositorios-en-una-red.html>el
6/27/2010 05:04:00 PM



-- 
Celvin Rivas
http://www.gnusal.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ubuntu.com/archives/ubuntu-sv/attachments/20100627/670165d0/attachment.htm 


Más información sobre la lista de distribución Ubuntu-sv