En situacións nas que xestione varias máquinas, Apt pode ser de gran axuda xa que fai moi sinxelo o proceso de actualización e aplicación de parches de seguridade para cada máquina. O problema é que, co método tradicional, unha vez que sae unha actualización, ten que descargar unha copia de todos os novos paquetes para cada unha das máquinas, o que implica un consumo fenomenal do noso ancho de banda e ancho de banda. existe un método que nos permite actualizar unha das máquinas e, a partir de aí, actualizar o resto das máquinas que compoñen a nosa rede. Este método, ademais de reducir custos e optimizar o uso do noso ancho de banda, evita a duplicación de paquetes nas diferentes máquinas: todos instalan os paquetes usando o noso "servidor caché". |
Cando estea a executar a mesma distribución en diferentes máquinas (xa sexa no traballo, nos laboratorios informáticos, nas "granxas" de servidores, en clusters ou incluso na súa pequena rede doméstica) pode ser útil crear un repositorio de caché na súa rede para que unha vez descargado un paquete desde un repositorio oficial, todas as demais máquinas descárgano dende ese repositorio de caché que se almacena nunha máquina da súa rede que chamaremos "servidor". Deste xeito, as actualizacións descargadas desde unha máquina pódense instalar nas outras sen ter que volver descargalas dos repositorios oficiais.
Primeiro vexamos algunhas solucións "non tradicionais" que NON recomendo, pero que seguramente me virán á cabeza ao resolver esta pregunta.
Índice
Compartir / etc / apt
Cando instala un paquete nunha distribución Debian (ou os seus derivados), almacénase localmente no directorio '/ etc / apt'. Cando se require un paquete, Apt primeiro busca neste directorio para ver se hai unha copia local (é dicir, unha caché), evitando así a descarga innecesaria. Como resultado, moitos de vós seguramente pensaron que unha boa forma de resolver o problema en cuestión podería ser escoller un ordenador, que designaríamos como unha especie de servidor, que se actualizaría utilizando os repositorios oficiais e que comparte o teu directorio '/ etc / apt' co resto das máquinas da rede. Non obstante, este método pode provocar problemas relacionados co bloqueo do ficheiro 'sources.list'. En xeral, non é a solución máis utilizada nin a máis conveniente.
Mover paquetes
En vez de compartir un directorio común '/ etc / apt', outra alternativa podería ser que cada computador use o seu propio directorio de caché local pero xere un script que se ocupe de copiar os paquetes dunha máquina á outra para que todos permanezan actualizados. . Unha ferramenta para levar a cabo esta tarefa pode ser "apt-move", pero sinceramente non a recomendo porque non é o suficientemente transparente para o usuario final. Ademais, pode significar un uso completamente innecesario do espazo no disco xa que todos os paquetes terán que ser copiados en cada unha das máquinas.
Sistemas de caché dedicados
A mellor solución para este problema é empregar un sistema de caché dedicado. En resumo, do que se trata é de crear unha copia dos servidores oficiais nunha das máquinas da súa rede e logo configurar o resto das máquinas para que, en vez de buscar actualizacións dos servidores oficiais, o fagan empregando isto caché local (ou copia).
Hai unha variedade de sistemas deseñados para traballar con Apt, incluíndo apt-cacher, apt-proxy e apt-cached.
Aquí imos tratar con apt-cacher, que é o máis sinxelo de usar.
apt-cacher
Apt-cacher é moi diferente a outros sistemas de almacenamento en caché do repositorio xa que non é un programa autónomo senón que se executa como un script CGI baixo Apache. Isto ten varias vantaxes, como convertelo nunha ferramenta pequena e sinxela pero ao mesmo tempo moi potente e, en consecuencia, máis robusta porque non require un código propio para manipular protocolos e é moi flexible porque pode usar o Apache mecanismo de control de acceso no caso de que queira limitar o número de máquinas habilitadas para acceder á caché.
Apt-cacher só precisa instalarse nunha máquina, a que vostede decida debería funcionar como caché do seu repositorio local. Despois, o resto de ordenadores da súa rede deben estar configurados para solicitar actualizacións da caché e non dos servidores oficiais.
Configuración do servidor
Para instalalo só
sudo apt-get install apt-cacher
Este paquete ten dependencias con apache, perl e wget, polo que instalará se non o tes instalado previamente.
Unha vez instalado, recoméndase reiniciar Apache:
/etc/init.d/apache reiniciar
Finalmente, todo o que tes que facer é axustar os parámetros predeterminados do script. Escribín nun terminal:
sudo gedit /etc/apt-cacher/apt-cacher.conf
En xeral, todos os valores predeterminados están ben, pero recoméndase axustar os tres seguintes:
admin_email = mimail @ myserver generate_reports = 1 expire_hours = 24
O segundo elemento é unha variable booleana que determina a xeración de informes (0 non xera informes, 1 xéranos). O primeiro elemento, en cambio, é o enderezo de correo electrónico ao que se enviarán os informes creados. O terceiro e último elemento determina o número de horas que Apt debe esperar para comprobar se hai actualizacións dispoñibles nos servidores oficiais.
Se está a usar un proxy, non esqueza engadir os seguintes elementos:
http_proxy = proxy.example.com: 8080 use_proxy = 1
Para verificar que funciona, pode acceder á súa caché local a través da URL http: // nome_servidor / apt-cacher / e aparecerá unha páxina que mostra a configuración de apt-cacher. Lembre que "nome_servidor" debe ser substituído pola IP da máquina que designou como "servidor", é dicir, como depositario da caché de paquetes local.
Configuración de clientes
Agora todo o que tes que facer é modificar o sources.list dos clientes para que pasen polo servidor. Se a IP do servidor é 123.123.123.123, ten que engadila a cada liña do sources.list e tamén ter coidado de que todos se refiran ao mesmo servidor, se non, a caché non terá efecto.
sudo gedit /etc/apt/sources.list
Unha vez aberto o ficheiro, sendo a IP do noso servidor 123.123.123.123, todas as liñas deberían modificarse empregando os seguintes criterios:
# Orixinal #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 # Modificado 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 podes ver, tes que engadir o servidor IP + '/ apt-cacher /' ao comezo da URL. Despois vai o resto da liña orixinal.
Estatísticas de tráfico
Se engadiu o elemento 'generate_reports = 1' no ficheiro 'apt-cacher.conf', apt-cacher xerará estatísticas de acceso ás que podes acceder coa url '/ apt-cacher / report'.
Se, por calquera motivo, precisa xerar as estatísticas antes do número de horas establecido en 'apt-cacher.conf', execute o seguinte comando:
/usr/share/apt-cacher/apt-cacher-report.pl
12 comentarios, deixa os teus
Un saúdo, excelente contribución, a miña pregunta é se coñeces algunha aplicación que che permita ter un repositorio centralizado para aplicar parches pero a diferentes distribucións, é dicir, manter varias máquinas actualizadas ao mesmo tempo pero ter diferentes distribucións
Ola Eduardo! A verdade é que o vexo moi difícil. Se descubres algún xeito, non deixes de avisarme.
Unha forte aperta! Ánimo! Paul.
Eu uso marioneta para xestionar remotamente os servidores que xestiono.
Si. Moitas grazas pola información. Xa o corrixín.
Abrazo! Paul.
Ola,
o tutorial é moi bo ... teño un alcance .. en Debian Lenny o source.lst está no camiño / etc / apt /
lembranzas
Pregunta….
se teño un par de máquinas coa mesma distribución ... pero non cos mesmos programas ... Como sabes que descargar desde os repos oficiais ... baixa todo ??? ...
A túa pregunta é excelente. Calculo que o sistema debería funcionar igual que nun Apt común: se non o atopa na caché, descárgao dos repositorios oficiais. Neste caso, unha das máquinas "cliente" informa ao "servidor" que precisa unha actualización segundo a lista de actualizacións no "servidor" da súa rede. Para instalar esa actualización calculo que primeiro buscará o paquete na caché do servidor. Se non o atopa, descárgao dos repositorios oficiais, gárdao no servidor e, a partir de aí, instálase na máquina que o requiriu. Este paquete estará dispoñible na caché "servidor" para que outras máquinas da súa rede poidan instalalo tamén desde alí.
Non dubide en escribir se non o tiña o suficientemente claro.
Unha aperta! Paul.
Creo que hai un ERRO ... os paquetes non se almacenan en / etc / apt ... realmente permanecen en / var / cache / apt / archives
A verdade é que non o sei.
Seguro que hai un xeito de facelo. 🙁
Se o descubres, avísame e engadireino.
Ánimo! Paul.
Nada coas ip dinámicas, non?
Ao parecer, nas distros máis actuais hai que engadir o porto (3142 por defecto) á URL da rede local. Tería o seguinte: http://mi_servidor:3142/apt-cacher
Teño lubuntu 16.04 quen o fixo neste sistema e se funcionou para el? E o que quería preguntar é o seguinte se instalo este servidor e as miñas outras máquinas non teñen os mesmos programas cando fago unha solicitude nas máquinas cliente para a instalación dun programa que teño no servidor, cres que instalo directamente desde o servidor local ou a solicitude ao servidor de repositorio oficial ¿?