Como usar o apt-cacher-ng somente quando disponível?

5

Estou usando apt-cacher-ng na minha rede local com a seguinte configuração nos clientes:

Acquire::http { Proxy "http://acng-host:3142"; };

Alguns dos clientes são laptops, então como configurá-los para usar o cache somente quando ele estiver disponível nessa rede?

    
por itshorty 29.01.2013 / 15:03

3 respostas

4

Algo como isso deve funcionar:

/etc/NetworkManager/dispatcher.d

#!/bin/bash
ip=10.0.1.13
port=3142
nc -w 1 $ip $port
proxy_file="/etc/apt/apt.conf.d/02local_proxy"
if [ $? -eq 0 ]; then
    echo "Acquire::http { Proxy \"http://$ip:$port\"; };" > $proxy_file
    echo 'Acquire::https { Proxy "false"; };' >> $proxy_file
else
    rm -f $proxy_file
fi

Corrigir permissões

sudo chmod +x /etc/NetworkManager/dispatcher.d/99SetAptProxy

Notas:

  • O comando "nc" testa que pode conectar-se à porta 3142 no endereço IP especificado.
  • Esse script é executado toda vez que as interfaces de rede são alteradas pelo gerenciador de rede.
  • Sinta-se à vontade para alterar a maneira que você detecta para o proxy, isso funciona para mim, mas é uma vulnerabilidade de segurança se você instalar pacotes em uma rede estrangeira, por exemplo.
por dpb 28.02.2013 / 21:28
3

Do servidor você pode anunciar para a rede que existe uma instância do apt-cacher-ng através do avahi

Do cliente você pode verificar se existe um serviço apt-cacher-ng e modificar as configurações do proxy apt de acordo.

Servidor

Instalar

$ sudo apt-get install apt-cacher-ng squid-deb-proxy-client

Para versões do Ubuntu anteriores a 14.04, coloque o seguinte trecho em /etc/avahi/services/apt-cacher-ng.service:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
 <name replace-wildcards="yes">apt-cacher-ng proxy on %h</name>
 <service protocol="ipv4">
  <type>_apt_proxy._tcp</type>
  <port>3142</port>
 </service>
</service-group>

Cliente

Instalar

$ sudo apt-get install squid-deb-proxy-client

Aqui está um trecho para instalar o servidor | cliente dependendo se já existe um proxy apt-get:

  • link

Fonte: link

    
por Javier López 11.08.2013 / 22:27
-1

Não é uma resposta exata, pois você terá que alterar sua configuração de cache existente, mas squid-deb-proxy é uma boa solução para fornecer um cache que será usado de forma transparente, se disponível, e é muito fácil de configurar em cache servidor e clientes. Veja a primeira resposta a esta pergunta para mais detalhes.

    
por chronitis 29.01.2013 / 15:08