Como manter várias máquinas atualizadas ao mesmo tempo

Em situações onde você gerencia várias máquinas, o Apt pode ser muito útil, pois torna o processo de atualização e aplicação de patches de segurança para cada máquina muito simples. O problema é que, com o método tradicional, uma vez lançada uma atualização, você tem que baixar uma cópia de todos os novos pacotes para cada uma das máquinas, o que implica um consumo fenomenal de nossa largura de banda e largura de banda. Do servidor oficial Felizmente, existe um método que nos permite atualizar uma das máquinas e, a partir daí, atualizar as demais máquinas que compõem nossa rede. Este método, além de reduzir custos e otimizar o uso de nossa largura de banda, evita a duplicação de pacotes nas diferentes máquinas: todas instalam os pacotes usando nosso "servidor de cache".


Quando você está executando a mesma distribuição em máquinas diferentes (seja no trabalho, em laboratórios de informática, em "farms" de servidores, em clusters, ou mesmo em sua pequena rede doméstica) pode ser útil criar um repositório de cache em sua rede para que assim que um pacote é baixado de um repositório oficial, todas as outras máquinas o baixam desse repositório de cache que está armazenado em uma máquina em sua rede que chamaremos de "servidor". Desta forma, as atualizações baixadas de uma máquina podem ser instaladas nas outras sem ter que baixá-las novamente dos repositórios oficiais.

Vejamos primeiro algumas soluções "não tradicionais" que NÃO recomendo, mas que certamente virão à mente ao resolver essa questão.

Compartilhar / etc / apt

Quando você instala um pacote em uma distro Debian (ou seus derivados), ele é armazenado localmente no diretório '/ etc / apt'. Quando um pacote é necessário, o Apt primeiro procura neste diretório para ver se há uma cópia local (ou seja, um cache), evitando assim downloads desnecessários. Como resultado, muitos de vocês certamente terão pensado que uma boa maneira de resolver o problema em questão seria escolher um computador, que designaríamos como uma espécie de servidor, que seria atualizado usando os repositórios oficiais, e que seria compartilhe seu diretório '/ etc / apt' com o resto das máquinas na rede. No entanto, este método pode levar a problemas relacionados ao bloqueio do arquivo 'sources.list'. Em geral, não é a solução mais usada nem a mais conveniente.

Mover pacotes

Em vez de compartilhar um diretório comum '/ etc / apt', outra alternativa poderia ser cada computador usar seu próprio diretório de cache local, mas gerar um script que cuida de copiar os pacotes de uma máquina para outra para que todos permaneçam atualizados . Uma ferramenta para realizar essa tarefa pode ser 'apt-move', mas eu honestamente não a recomendo porque não é transparente o suficiente para o usuário final. Além disso, pode significar um uso completamente desnecessário do espaço em disco, uma vez que todos os pacotes terão que ser copiados para cada uma das máquinas.

Sistemas de cache dedicado

A melhor solução para esse problema é usar um sistema de cache dedicado. Resumindo, trata-se de criar uma cópia dos servidores oficiais em uma das máquinas da sua rede e depois configurar as demais máquinas para que, ao invés de buscar atualizações nos servidores oficiais, o façam usando este cache local (ou cópia).

Há uma variedade de sistemas projetados para trabalhar com o Apt, incluindo apt-cacher, apt-proxy e apt-cached.

Aqui vamos lidar com o apt-cacher, que é o mais fácil de usar.

apt-cacher

Apt-cacher é bastante diferente de outros sistemas de armazenamento em cache de repositório, pois não é um programa independente, mas é executado como um script CGI no Apache. Isso tem várias vantagens, como torná-lo uma ferramenta pequena e simples, mas ao mesmo tempo muito poderosa e, conseqüentemente, mais robusta porque não requer código próprio para lidar com protocolos, e é muito flexível porque você pode usar o Apache's mecanismo de controle de acesso caso você queira limitar o número de máquinas que estão habilitadas para acessar o cache.

Apt-cacher só precisa ser instalado em uma máquina, aquela que você decidir que deve funcionar como seu cache de repositório local. Então, o resto dos computadores em sua rede deve ser configurado para solicitar atualizações do cache e não dos servidores oficiais.

Configuração do servidor

Para instalar apenas

sudo apt-get install apt-cacher

Este pacote tem dependências com apache, perl e wget, então ele irá instalá-los se você não tiver instalado anteriormente.

Uma vez instalado, é recomendado reiniciar o Apache:

/etc/init.d/apache reiniciar

Finalmente, tudo que você precisa fazer é ajustar os parâmetros padrão do script. Escrevi em um terminal:

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

Em geral, todos os padrões estão corretos, mas é recomendável ajustar os três seguintes:

admin_email = mimail @ myserver generate_reports = 1 expire_hours = 24

O segundo elemento é uma variável booleana que determina a geração de relatórios (0 não gera relatórios, 1 os gera). O primeiro elemento, em vez disso, é o endereço de e-mail para o qual os relatórios criados serão enviados. O terceiro e último item determina o número de horas que o Apt deve esperar para verificar as atualizações disponíveis nos servidores oficiais.

Se você estiver usando um proxy, não se esqueça de adicionar os seguintes itens:

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

Para verificar se funciona, você pode acessar seu cache local através do url http: // server_name / apt-cacher / e uma página aparecerá mostrando a configuração do apt-cacher. Lembre-se de que 'nome_do_servidor' deve ser substituído pelo IP da máquina que você designou como 'servidor', ou seja, como o depósito do cache de pacotes local.

Configuração de clientes

Agora tudo que você precisa fazer é modificar o sources.list dos clientes para que eles passem pelo servidor. Se o IP do servidor for 123.123.123.123, você deve adicioná-lo a cada linha do sources.list, e também ter cuidado para que todos eles se refiram ao mesmo servidor, caso contrário, o cache não terá efeito.

sudo gedit /etc/apt/sources.list
Nota: tenha cuidado! No Debian e seus derivados, o 'sources.list' é armazenado em '/ etc / apt'. No entanto, em outras distribuições, ele pode ser armazenado em outro caminho. Caso não consiga encontrar o arquivo, você sempre pode encontrá-lo digitando 'locate sources.list' em um terminal.

Uma vez que o arquivo é aberto, o IP do nosso servidor é 123.123.123.123, todas as linhas devem ser modificadas usando os seguintes critérios:

# Original #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 não livre deb-src http://123.123.123.123/apt-cacher/ftp.us.debian. org / debian / sid main contrib não livre

Como você pode ver, você deve adicionar o servidor IP + '/ apt-cacher /' no início da URL. Em seguida, vai o resto da linha original.

Estatísticas de tráfego

Se você adicionou o elemento 'generate_reports = 1' no arquivo 'apt-cacher.conf', o apt-cacher irá gerar estatísticas de acesso, que você pode acessar com o url '/ apt-cacher / report'.

Se, por algum motivo, você precisar gerar estatísticas antes do número de horas definido em 'apt-cacher.conf', execute o seguinte comando:

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

12 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   eduardo dito

    Saudações, excelente contribuição, minha dúvida é se você conhece algum aplicativo que permite ter um repositório centralizado para aplicar patches mas para distribuições diferentes, ou seja, manter várias máquinas atualizadas ao mesmo tempo, mas com distribuições diferentes

  2.   Vamos usar Linux dito

    Oi Eduardo! A verdade é que vejo muito difícil. Se descobrir de alguma forma não pare de me avisar.
    Um grande abraço! Felicidades! Paulo.

  3.   Pintinho dito

    Eu uso o puppet para gerenciar remotamente os servidores que gerencio.

  4.   Vamos usar Linux dito

    Sim. Muito obrigado pela informação. Eu já corrigi.
    Abraço! Paulo.

  5.   Geniutrixona dito

    Olá,

    o tutorial é super bom ... eu tenho um escopo .. no Debian Lenny o source.lst está no caminho / etc / apt /

    lembranças

  6.   sepulvedamarcos dito

    questão….

    se eu tiver algumas máquinas com a mesma distro… mas não com os mesmos programas…. Como você sabe o que baixar dos repositórios oficiais…. abaixa tudo ??? ...

  7.   Vamos usar Linux dito

    Sua pergunta é excelente. Calculo que o sistema deve funcionar da mesma forma que em um Apt comum: se não encontrar no cache, ele baixa dos repositórios oficiais. Neste caso, uma das máquinas "cliente" informa o "servidor" que necessita de uma atualização de acordo com a lista de atualizações no "servidor" da sua rede. Para instalar essa atualização, calculo que primeiro procurará o pacote no cache do servidor. Caso não encontre, baixa-o dos repositórios oficiais, salva-o no servidor e, a partir daí, é instalado na máquina que o solicitou. Esse pacote estará disponível no cache do "servidor" para que outras máquinas da rede também possam instalá-lo a partir daí.

    Sinta-se à vontade para escrever se não fui suficientemente claro.

    Um abraço! Paulo.

  8.   Mishudark dito

    Eu acho que há um ERRO… os pacotes não são armazenados em / etc / apt…. eles realmente ficam em / var / cache / apt / archives

  9.   Vamos usar Linux dito

    A verdade é que não sei.
    Claro que existe uma maneira de fazer isso. 🙁
    Se você descobrir, me avise e eu adicionarei.
    Felicidades! Paulo.

  10.   Alvaro dito

    Nada com ip's dinâmicos, certo?

  11.   Marce dito

    Aparentemente, nas distros mais atuais, você precisa adicionar a porta (3142 por padrão) à URL da rede local. Seria assim: http://mi_servidor:3142/apt-cacher

  12.   alfredo torrealba dito

    Eu tenho lubuntu 16.04 quem fez isso neste sistema e se funcionou para ele? E o que eu queria perguntar é o seguinte se eu instalo este servidor e minhas outras máquinas não têm os mesmos programas ao fazer uma solicitação nas minhas máquinas clientes para a instalação de um programa que eu tenho no servidor, você acha que eu instalo diretamente do servidor local ou a solicitação para o servidor de repositório oficial ¿?