Servidor de Atualização de Pacotes - RESOLVIDO

Iniciado por Fernando Jonathan, 01 de Junho de 2009, 11:04

tópico anterior - próximo tópico

Fernando Jonathan

Oi pessoal,
Sou novo no mundo linux, tenho apenas 3 meses no máximo (obs: tenho gostado muito), contudo exerço a função de suporte técnico, e cuidamos de 50 à 60 máquinas rodando o ubuntu 8.10 sem contar as que rodam o windows.
Sabemos que no mundo linux tudo pode ser automatizado, só que até o momento meu conhecimento é limitado. E nós gostariamos de montar um servidor de atualização, pois com o lançamento do ubuntu 9.04 pretendemos atualizar todas as máquinas e instalar alguns programas adicionais como o 'eclipse, openssh-server, gftp, wine, wiresharck e vários outros'.
**O que é necessário para montar o mesmo?


Fernando Jonathan

#1
Eu estava estudando aqui e encontrei:
http://www.vivaolinux.com.br/dica/Aptcacher-Sistema-de-cache-para-pacotes-DEB
http://wiki.ubuntu-br.org/apt-cacher
http://www.dicas-l.com.br/dicas-l/20090222.php
http://focolinux.blogspot.com/2009/05/repositorio-local-apt-cacher.html
mais alguns
www.dicas-l.com.br/20050324.php
www.dicas-l.com.br/dicas-l/20050462.php (debian (sarge) utilizando apt-mirror)

Peguei inclusive alguns sites em inglês e passam as mesmas dicas com algumas excessões referente a procedimentos mas no fim fazem o mesmo. E ainda assim eu nao consegui montar, pois na hora de reiniciar o 'apt-cacher' (este é o nome do serviço local de atualização de pacotes ) aparece o seguinte:

# /etc/init.d/apt-cacher  restart
Restarting Apt-Cacher: apt-cacherUnable to bind socket (port 3142), trying again in 5 seconds.
Unable to bind socket (port 3142), trying again in 5 seconds.
Unable to bind socket (port 3142), /usr/sbin/apt-cacher not started.
.

E agora José??? Eu achei muito interessante e a princio parece ser simples, tirando este problema que está acontecendo!!
Estou aberto a ajuda.

Tota

Boas,

Parece que algum firewall esta bloqueando a porta 3142.


[],s

Fernando Jonathan

#3
Tota,
Realmente nos tuto's que li, falavam para habilitar a porta 3142 e eu habilitei com um comando iptables 'alguma coisa que nao lembro no momento' e tbm intalei um firewall para liberar as portas. ainda assim não rodou!!

Mediante os estudos feitos, mal sucedido na aplicação devido a problemas técnicos que no momento não estão ao meu alcance, eu percebi que:
*O sistema de apt-get nada mais é que uma linha no source.lst indicando um site (lógico);
aí pensei : Posso fazer um servidor web com o apache2 e disponibilizar os pacotes e na máquina cliente é só adicionar a linha apontando para o servidor. Só que, montei o servidor web e aparece todos os pacotes bonitinho lá, mas na hora de adinionar a linha no source.lst dá erro!
Alguem sabe como posso adicionar esta bendita linha nas maquinas clientes?

Fernando Jonathan

Consegui criar um Servidor de APT, não é dificil encontrar as informações, o dificil para mim foi unir o apache2 com o http-replicator:

* Como funciona:
Bem simples, quando executado comandos de apt-get será verificado se neste servidor tem o pacote requerido, caso não haja será feita a busca e ele irá guardar o pacote no cache e enviará uma cópia para o cliente. Havendo, será enviado uma cópia para o cliente sem que haja busca na internet. Testei com clientes ubuntu 9.04 e 8.10 e ele faz a divisão de cada versão sem nenhum problema.

Lá vai o passo-a-passo (testado com o ubuntu 9.04 server e Desktop) :

=> Instalando e configurando o http-replicator:

- Instalar o pacote do apache2:
           
   sudo apt-get install apache2

- Instalar o http-replicator, use apenas um dos sites:
     
sudo wget'http://web.archive.org/web/20070816213803/http://gertjan.freezope.org/replicator/http-replicator_3.0_i386.deb'

   * Ou este:

   sudo wget http://gertjan.freezope.org/replicator/http-replicator_3.0_i386.deb

   *Depois:

            sudo dpkg -i http-replicator_3.0_i386.deb

- Abrir o arquivo:
             
            sudo vim /etc/init.d/http-replicator
            Alterar a primeira linha onde existe  <#! /bin/sh> por  <#!/bin/bash>

- Criar pasta onde será guardado os pacotes e alterar proprietário (geralmente é definido o proxy)
           
            sudo mkdir /var/cache/http-replicator
   sudo chown -R proxy.root /var/cache/http-replicator

- Abrir o arquivo: sudo vim /etc/default/http-replicator. E alterar a linha onde tem:
   
           DAEMON_OPTS="$GENERAL_OPTS --port 8080 --log /var/log/http-replicator.log --user proxy
   
   por:
   
   DAEMON_OPTS="$GENERAL_OPTS --port 8080 --log /var/log/http-replicator.log --user proxy –ip=192.168.0.*"

OBS=>--ip=192.168.0.* a faixa a ser usada.

   Remover a linha:
   exit 0 # REMOVE THIS LINE TO ACTIVATE THE PROXY SERVER

- Reiniciar o http-replicator:
   sudo /etc/init.d/http-replicator restart

- Na maquina Cliente crie o arquivo apt.conf e adicionar a seguinte linha:
            sudo touch /etc/apt/apt.conf
   sudo vim /etc/apt/apt.conf
   
   Adicionar a linha:
   Acquire::http::Proxy "http://192.168.0.1:8080";
   
OBS=> O endereço 192.168.0.1 é o do servidor que estamos criando e pode ser alterado .


=> Configurando o Apache2
- Após instalado o servidor web 'apache2' como descrito no sub-item 1.1, abra o seguinte arquivo:     
             sudo vim /etc/apache2/ports.conf

Observe a seguinte linha:
   
             NameVirtualHost *:80
            Altere a porta conforme definida na configuração do http-replicator

- Se a porta foi alterada para qualquer outra, é preciso habilitá-la com:
   
            sudo iptables -A INPUT -p tcp -i ppp0 --dport 8080 -j ACCEPT


- Reinicie o Servidor apache com o comando:
   /etc/init.d/apache2 restart


=> Configurando um domínio virtual.
Informação :
        /etc/apache2/sites-available/ = Tem a Lista de sites disponíveis
        /etc/apache2/sites-enable/ = Tem os sites habilitados (links simbólicos)

- Criando um modelo de configuração de site e habilitando o mesmo:

   sudo cp /etc/apache2/sites-available/default    /etc/apache2/sites-available/<nome_desejado>
   sudo a2ensite <nome_desejado_que_foi_criado_acima>

- Editando a configuração do site:
   
   sudo vim /etc/apache2/sites-available/<nome_desejado_que_foi_criado_acima>

Observe as linhas:
   <VirtualHost *:80>
   ServerAdmin webmaster@localhost
   DocumentRoot /var/cache/http-replicator
   ErrorLog /var/log/apache2/error.log

- Altere-as conforme as necessidades
   <VirtualHost *:8080> = Se você alterou esta porta anteriormente, modifique-a.
   ServerAdmin webmaster@localhost = seu e-mail (opcional)
   DocumentRoot /var/cache/apache = altere-a para a pasta que foi criada: /var/cache/http-replicator
   ErrorLog /var/log/apache2/error.log = Local onde fica salvo os log's de erro

- Reinicie o servidor web apache:

   sudo /etc/init.d/apache2 restart

- Para redes que tem distribuição de IP automático (DHCP)
Definir no servidor DHCP um IP fixo, pois as máquinas clientes buscarão as atualizações no ip que foi informado no item 1.7

=> Para testar é só colocar na URL: http://192.168.0.X:8080/

Jadhilson Arnaldo

Fala filho do Erico.
Jonathan, esse procedimento que você postou aqui no Forúm é funcionável mesmo?

Grato e aguardo a resposta

Tota

Citação de: Jadhilson Arnaldo online 11 de Abril de 2012, 14:32
Grato e aguardo a resposta

Ola

Num topico de 2009, eu teria a curiosidade de ver no perfil do autor do topico quando ele logou pela ultima vez no forum.

CitarNome:    Fernando Jonathan
Última visita:    05 de Outubro de 2010, 23:34

Com isto, eu acredito que será um pouco demorado para você obter esta resposta.

[]'s

Fernando Jonathan

Fala Jadilson o kra do CTI.
Bom, em resposta da sua pergunta funcionou tranquilamente com o ubuntu 9.04 como informado anteriormente. Creio que alguns pacotes tenham sofrido atualizações para melhoria e deve ser muito mais fácil criar o servidor de pacotes pois também temos o ubuntu 12.04 P. P. Mas lembre-se, primeiro deve-se dar início com uma máquina vírtual, para depois instalar numa real, para depois colocar em produção.

Abraço.