Pesquisa de site

Configure repositórios locais com 'apt-mirror' em sistemas Ubuntu e Debian


Quando hoje o tráfego e as velocidades casuais da Internet são medidos em adolescentes de Giga em um piscar de olhos, mesmo para clientes comuns da Internet, qual é o propósito de definir um cache de repositório local em LANs, você pode perguntar?

Um dos motivos é a redução da largura de banda da Internet e a alta velocidade na extração de pacotes do cache local. Mas, também, outra razão importante deveria ser a privacidade. Vamos imaginar que os clientes da sua organização estão restritos à Internet, mas suas máquinas Linux precisam de atualizações regulares do sistema em termos de software e segurança ou apenas precisam de novos pacotes de software. Para ir além, um servidor executado em uma rede privada contém e fornece informações secretas confidenciais apenas para um segmento de rede restrito e nunca deve ser exposto à Internet pública.

Estas são apenas algumas razões pelas quais você deve construir um espelho de repositório local em sua LAN, delegar um servidor de borda para este trabalho e configurar clientes internos para extrair software de seu espelho de cache.

O Ubuntu fornece o pacote apt-mirror para sincronizar o cache local com os repositórios oficiais do Ubuntu, espelho que pode ser configurado através de um servidor HTTP ou FTP para compartilhar seu pacotes de software com clientes do sistema local.

Para um cache espelhado completo, seu servidor precisa de pelo menos 120G de espaço livre reservado para repositórios locais.

Requisitos

  1. Mínimo de 120G de espaço livre
  2. Servidor Proftpd instalado e configurado em modo anônimo.

Etapa 1: configurar o servidor

1. A primeira coisa que você pode querer fazer é identificar os espelhos Ubuntu mais próximos e mais rápidos perto de sua localização, visitando a página Ubuntu Archive Mirror e selecionando seu país.

Se o seu país fornece mais espelhos você deve identificar o endereço do espelho e fazer alguns testes com base nos resultados de ping ou traceroute.

2. A próxima etapa é instalar o software necessário para configurar o repositório de espelho local. Instale os pacotes apt-mirror e proftpd e configure o proftpd como daemon de sistema independente.

sudo apt-get install apt-mirror proftpd-basic

3. Agora é hora de configurar o servidor apt-mirror. Abra e edite o arquivo /etc/apt/mirror.list adicionando os locais mais próximos (Etapa 1) – opcional, se os espelhos padrão forem rápidos o suficiente ou se você não estiver em com pressa – e escolha o caminho do sistema onde os pacotes devem ser baixados. Por padrão, o apt-mirror usa a localização /var/spool/apt-mirror para o cache local, mas neste tutorial usaremos a alteração do caminho do sistema e o ponto set diretiva base_path para o local /opt/apt-mirror.

sudo nano /etc/apt/mirror.list

Além disso, você pode descomentar ou adicionar outra lista de fontes antes da diretiva limpa – incluindo fontes Debian – dependendo de quais versões do Ubuntu seus clientes usam. Você pode adicionar fontes a partir de 12.04, se desejar, mas esteja ciente de que adicionar mais fontes requer mais espaço livre.

Para listas de fontes Debian visite Debian Wiki ou Debian Sources List Generator.

4. Tudo o que você precisa fazer agora é apenas criar o diretório de caminho e executar o comando apt-mirror para sincronizar os repositórios oficiais do Ubuntu com nosso espelho local. .

sudo mkdir -p /opt/apt-mirror
sudo apt-mirror

Como você pode ver, o apt-mirror prossegue com a indexação e download de arquivos apresentando o número total de pacotes baixados e seu tamanho. Como podemos imaginar, 110-120 GB é grande o suficiente para levar algum tempo para fazer o download.

Você pode executar o comando ls para visualizar o conteúdo do diretório.

Assim que o download inicial for concluído, os downloads futuros serão pequenos.

5. Enquanto o apt-mirror baixa pacotes, você pode configurar seu servidor Proftpd. A primeira coisa que você precisa fazer é criar um arquivo de configuração anônimo para proftpd executando o seguinte comando.

sudo nano /etc/proftpd/conf.d/anonymous.conf

Em seguida, adicione o seguinte conteúdo ao arquivo anonymous.conf e reinicie o serviço proftd.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
  MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>

6. O próximo passo é vincular o caminho apt-mirror ao caminho proftpd executando uma montagem bind emitindo o comando.

sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/

Para verificar, execute o comando mount sem nenhum parâmetro ou opção.

mount

7. O último passo é garantir que o servidor Proftpd seja iniciado automaticamente após a reinicialização do sistema e o diretório mirror-cache também é montado automaticamente no caminho do servidor FTP. Para ativar automaticamente o proftpd, execute o seguinte comando.

sudo update-rc.d proftpd enable

Para montar automaticamente o cache do apt-mirror no proftpd, abra e edite o arquivo /etc/rc.local.

sudo nano /etc/rc.local

Adicione a seguinte linha antes da diretiva exit 0. Use também um atraso de 5 segundos antes de tentar montar.

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Se você extrair pacotes dos repositórios Debian, execute os seguintes comandos e certifique-se de que as configurações apropriadas para o arquivo rc.local acima estejam habilitadas.

sudo mkdir /srv/ftp/debian
sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/

8. Para uma sincronização diária do apt-mirror você também pode criar um trabalho de agendamento do sistema para ser executado às 2h todos os dias. Execute o comando crontab, selecione seu editor preferido e adicione a seguinte sintaxe de linha.

sudo crontab –e

Na última linha adicione a seguinte linha.

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log

Agora, todos os dias às 2h, o cache do repositório do seu sistema será sincronizado com os espelhos oficiais do Ubuntu e criará um arquivo de log.

Etapa 2: configurar clientes

9. Para configurar clientes Ubuntu locais, edite /etc/apt/source.list nos computadores clientes para apontar para o endereço IP ou nome de host do Servidor apt-mirror – substitua o protocolo http por ftp e atualize o sistema.

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….

10. Para visualizar repositórios você pode abrir um navegador e apontar para o endereço IP do seu servidor de nome de domínio usando o protocolo FTP.

O mesmo sistema se aplica também a clientes e servidores Debian, as únicas mudanças necessárias são o espelho debian e a lista de fontes.

Além disso, se você instalar um novo sistema Ubuntu ou Debian, forneça seu espelho local manualmente com protocolo FTP quando o instalador perguntar qual repositório usar.

A grande vantagem de ter seus próprios repositórios de espelhos locais é que você está sempre atualizado e seus clientes locais não precisam se conectar à Internet para instalar atualizações ou software.