Olá
a todos.
Recebi
esta sugestão em uma entrevista de emprego. Então resolvi por em
prática e ver analisar melhor esta ferramenta que acaba sendo muito
útil quando o assunto é controle de banda.
Muitos
chamam este serviço de WSUS do Gnu/Linux, visto que ele também
suporta outros sistemas. Mas vou testar apenas com os sistemas Ubuntu
e Debian por enquanto. =D
Imaginem
que vocês migraram metade do parque de máquinas da empresa, usando
Debian nos servidores e derivados do Ubuntu nas estações. E sempre
que precisam atualizar o sistema é aquela lentidão. Pois dependendo
do link, essa tarefa pode ser bem demorada.
E
se você pudesse baixar os pacotes uma única vez e pudesse
distribuir estes pacotes para todas as estações de trabalho da
rede?
Não
estou falando de utilizar o Squid para esta tarefa. Porque com o
tempo, ele ia excluir os pacotes caso o tempo de permanência deles
expirasse ou o cache ficasse cheio.
Existe
um serviço chamado Apt-Cacher. Ele faz um cache dos pacotes e separa
de acordo com a versão do sistema. Escolhi utilizar o Apt-Cacher NG
para demonstração pelo fato de ele me parecer mais simples do que o
Apt-Cacher original. É o meu ponto de vista. =P
Lembrando
que todo o servidor deve possuir um IP fixo. Se você não sabe como
fazer isso. Veja no meu tutorial sobre o SAMBA4, lá eu ensino como
fixar um endereço IP e o DNS para o servidor.
Tentei separar, mas achei importante mostrar como instalar o Java 8 no Debian e no Ubuntu e como evitar possíveis problemas ao instalá-lo numa rede que usa Apt-Cacher. A dica está na parte final deste texto.
Tentei separar, mas achei importante mostrar como instalar o Java 8 no Debian e no Ubuntu e como evitar possíveis problemas ao instalá-lo numa rede que usa Apt-Cacher. A dica está na parte final deste texto.
Instalando os pacotes
Mãos
à obra. Execute o comando abaixo.
#
apt-get install apt-cacher-ng
Configurando o serviço
Edite
o arquivo /etc/apt-cacher-ng/acng.conf e veja se os parâmetros
abaixo estão desmarcados. Caso eles não estejam no arquivo,
adicione-os.
#
vim /etc/apt-cacher-ng/acng.conf
O
arquivo é bem extenso mas segue as opções básicas que devem estar
desmarcadas.
###Início
do Arquivo
CacheDir:
/var/cache/apt-cacher-ng
LogDir:
/var/log/apt-cacher
Port:3142
#A porta pode ser alterada conforme a necessidade do administrador
#Escuta
todos os endereços IPv4
BindAddress:
0.0.0.0
#Fontes
que serão cacheadas
Remap-debrep:
file:deb_mirror*.gz /debian ; file:backends_debian # Debian Archives
Remap-uburep:
file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu # Ubuntu Archives
Remap-debvol:
file:debvol_mirror*.gz /debian-volatile ; file:backends_debvol #
Debian Volatile Archives
Remap-secdeb:
security.debian.org
ReportPage:
acng-report.html
VerboseLog:
1
PidFile:
/var/run/apt-cacher-ng/pid
#Arquivos
não referenciados na lista de pacotes serão excluídos de acordo
com o número dias setados.
ExTreshold:
4
###Fim
do Arquivo
Após
salvar as alterações no arquivo, reinicie o serviço.
#
service apt-cacher-ng restart
Configurando Clientes
Ubuntu
e derivados- Configure o proxy no diretório de configuração do
APT, adicionando um arquivo com o nome 02proxy no seguinte caminho.
#
vim /etc/apt/apt.conf.d/02proxy
Adicione
a seguinte linha ao arquivo.
Acquire::http
{ Proxy "http://ipdoservidor:porta"; };
Exemplo
→ Acquire::http { Proxy "http://192.168.1.180:3142"; };
Salve
e feche o arquivo.
Agora
atualize a lista de pacotes. A partir de agora, todos os pacotes
baixados serão armazenados no servidor e as próximas estações que
precisarem dos mesmos pacotes, vão fazer o download direto do
servidor. Lembrando que é necessário adicionar o arquivo 02proxy a
todos os clientes.
Debian
e derivados- Tentei configurar os clientes Debian da mesma forma que
os clientes Ubuntu mas não funcionou. Foi necessário modificar o
arquivo /etc/apt/sources.list para que se obtivesse o mesmo
resultado.
Exemplo
sem o Apt-Cacher
# vim /etc/apt/sources.list (arquivo de configuração dos repositórios
Debian GNU/Linux)
deb
http://ftp.br.debian.org/debian stable main
deb-src
http://ftp.br.debian.org/debian stable main
deb
http://security.debian.org/ stable/updates main
deb-src
http://security.debian.org/ stable/updates main
deb
http://volatile.debian.org/debian-volatile stable/volatile main
deb-src
http://volatile.debian.org/debian-volatile stable/volatile main
deb
http://192.168.1.180:3142/ftp.br.debian.org/debian stable main
deb-src
http://192.168.1.180:3142/ftp.br.debian.org/debian stable main
deb
http://192.168.1.180:3142/security.debian.org/ stable/updates main
deb-src
http://192.168.1.180:3142/security.debian.org/ stable/updates main
deb
http://192.168.1.180:3142/volatile.debian.org/debian-volatile
stable/volatile main
deb-src
http://192.168.1.180:3142/volatile.debian.org/debian-volatile
stable/volatile main
Atualize
a lista de pacotes para começar a cachear os pacotes.
Checando o serviço via Web
Você
pode visualizar o relatório do serviço via navegador. Basta digitar
o endereço IP com a porta de serviço.
A
apresentação página é bem simples. Logo abaixo tem um link para
acesso das estatísticas do cache. Clique nele e você verá a
utilização do cache dos pacotes.
Dicas extras
Instalando Java 8 no Ubuntu/Debian
Sabemos
que o OpenJDK não é compatível com os sites de banco (Bradesco,
Caixa, BB, Itaú). Neste caso, devemos instalar o Java 8 da Oracle.
Ubuntu
e derivados – Para adicionar o repositório da Oracle, adicione
este PPA com os seguintes comandos.
$ sudo
add-apt-repository ppa:webupd8team/java
$ sudo
apt-get update
Debian
e derivados – Para adicionar o repositório da Oracle, modifique o
arquivo /etc/apt/sources.list e adicione as seguintes entradas.
#
Repositório Oracle
deb
http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
deb-src
http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
Após
salvar e fechar o arquivo, execute o seguinte comando para obter a
chave GPG e validar o repositório.
#
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
EEA14886
#
apt-get update
Antes
de instalar o pacote, remova o OpenJDK
#
apt-get remove --purge
openjdk-7-*
#
apt-get install oracle-java8-installer
PPA WebUpd8-Team X Apt-Cacher-NG
Pesquisando
em alguns sites com relação ao repositório WebUpd8, muitos
relataram que o mesmo não funciona se for utilizado com o
Apt-Cacher.
Consegui
integrar o repositório no cache da seguinte forma. No Ubuntu, ele já
utiliza o Apt-Cacher automaticamente. No Debian, precisa alterar as
linhas do repositório adicionando o IP e a porta do serviço do
Apt-Cacher.
Ex:
deb
http://192.168.1.180:3142/ppa.launchpad.net/webupd8team/java/ubuntu
trusty main
deb-src
http://192.168.1.180:3142/ppa.launchpad.net/webupd8team/java/ubuntu
trusty main
Edite
o arquivo de configuração
/etc/apt-cacher-ng/acng.conf e adicione a seguinte entrada.
#Caso
você tenha adicionado o PPA do Java 8, adicione esta linha. Pois o
Apt-Cacher não suporta o instalador da Oracle
DontCache:
.*.oracle.com
Mas
faça esta alteração antes de instalar o Java.
Funciona
assim. O pacote oracle-java8-installer baixa o instalador compactado
em .tar.gz onde o Apt-Cacher entende que ele é uma lista de pacote e
não um instalador. O
que causa o erro na instalação do pacote.
Setando o parâmetro
DontCache para todo site da Oracle, garantimos
que o cache não vai manipular o arquivo, mas
também não vai guardá-lo em cache. O
que é um problema, já que o arquivo possui um tamanho de 153 MB.
Concordo
que não é a melhor solução, mas foi a única que eu encontrei.
Outra
opção seria usar o proxy HTTP (Squid) da própria rede para
armazenar o download do instalador. É possível pois o Apt-Cacher
manipula diretamente a source.list do APT, enquanto que o Squid
armazena o conteúdo acessado por outros aplicativos, no caso todo o
acesso feito via HTTP e FTP.
Considerações Finais
Agradeço
a todos que acessaram e leram a publicação. Espero que como sempre,
seja de grande ajuda.
Se
não for muito incômodo, ajude a divulgar a postagem clicando no
g+1. =D
Muito
obrigado.