martedì 8 dicembre 2015

Configurare un server Apt Cache per centralizzare gli aggiornamenti di Linux all’interno della vostra rete

http://www.sefi.it/

apt-cacher-ngRecentemente m’è capitato di installare una piccola rete di 12 PC con Edubuntu Linux nel laboratorio di una scuola e gli aggiornamenti di ogni PC rappresentavano un problema per la ristretta banda della linea internet a disposizione.
Così abbiamo deciso di configurare un server APT Cache su uno dei PC e di configurare gli altri client PC per aggiornarsi da questo server.
In questo modo qualunque pacchetto scaricato per aggiornamenti o nuove installazioni viene richiesto dai client al server che lo scarica e lo mette a disposizione dei client, con la notevole differenza che, servendo probabilmente a tutti e 12 i PC, viene scaricato una sola volta invece di 12 risparmiando tempo e banda internet.
Come già detto la distribuzione Linux utilizzata in questo caso è Edubuntu 14.04 LTS ma le istruzioni seguenti vanno benissimo per qualunque distribuzione Debian based come Debin, Ubuntu, Linux Mint o altro.

Server

Per l’installazione del servizio ho utilizzato apt-cacher-ng che è presente nei normali repository di Ubuntu.
L’installazione avviene con il seguente comando:

sudo apt-get install apt-cacher-ng
dopo l’installazione, il servizio apt-cacher-ng si avvia automaticamente.
A questo punto bisogna configurare apt-cacher-ng editando il file /etc/apt-cacher-ng/acng.conf per mappare i repository dei cui pacchetti deve fare cache disabilitando i repository che non servono.
Un esempio può essere il seguente se i client sono tutti Debian o Ubuntu:
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-cygwin: file:cygwin_mirrors /cygwin # ; file:backends_cygwin # incomplete, please create this file or specify preferred mirrors here
#Remap-sfnet:  file:sfnet_mirrors # ; file:backends_sfnet # incomplete, please create this file or specify preferred mirrors here
#Remap-alxrep: file:archlx_mirrors /archlinux # ; file:backend_archlx # Arch Linux
#Remap-fedora: file:fedora_mirrors # Fedora Linux
#Remap-epel:   file:epel_mirrors # Fedora EPEL
#Remap-slrep:  file:sl_mirrors # Scientific Linux
#Remap-gentoo: file:gentoo_mirrors.gz /gentoo ; file:backends_gentoo # Gentoo Archives
Per disabilitare un repository è sufficiente commentarlo con il carattere cancelletto #.
Inoltre bisogna de-commentare (eliminare il carattere cancelletto) dalla seguente riga:
PidFile: /var/run/apt-cacher-ng/pid
Altri parametri, già configurati de default ma che potreste voler modificare sono:
  • CacheDir: indicare il percorso dove verranno archiviati i pacchetti scaricati e messi a disposizioni per le richieste dei client
  • LogDir: indicare il percorso dove vengono registrati i log
  • Port: indicare la porta su cui il servizio resta in ascolto per le richieste dei client. Di default è il 3142 e se non avete particolari problemi conviene lasciare quella
  • ExTresholds: indicare il numero di giorni oltre i quali un pacchetto non referenziato viene cancellato
Terminata la configurazione bisogna riavviare il servizio con il comando:
sudo /etc/init.d/apt-cacher-ng restart
Infine, da un qualunque browser come ad esempio Firefox, collegarsi al servizio tramite l’indirizzo: http://ip-vostro-server:3142 (esempio: http://192.168.5.118:3142/)
apt-cacher-ng
appuntarsi l’informazione cerchiata in rosso che servirà successivamente per la configurazione dei client PC. Nell’esempio mostrato è:
Acquire::http { Proxy "http://192.168.5.118:3142"; };
Sempre dal browser è possibile collegarsi alla pagina delle statistiche relative al funzionamento del servizio ed allo stato della cachetramite il seguente indirizzo:
http://192.168.5.118:3142/acng-report.html
ovviamente l’indirizzo IP dovrà essere quello del vostro server e le informazioni saranno simili a quelle della figura seguente:
apt-cacher-ng statistics

Client PC

Per fare in modo che i PC client si colleghino al nuovo server APT Cache per scaricare qualunque pacchetto, bisogna creare e configurare il file 02proxy nel percorso /etc/apt/apt.conf.d/ con il comando:
sudo gedit /etc/apt/apt.conf.d/02proxy
va aggiunta un’unica riga con il contenuto precedentemene appuntato, esempio:
Acquire::http { Proxy "http://192.168.5.118:3142"; };
ovviamente dovete indicare quella rilevata dal vostro server.
A questo punto salvare e chiudere il file e il client è già pronto per scaricare i pacchetti dal nuovo server APT Cache.
Per verificarlo è sufficiente provare ad aggiornare il client con i seguenti comandi:
sudo apt-get update
sudo apt-get upgrade
Al termine dei comandi potrete verificare che i conteggi della cache sono variati sulla pagina delle statistiche del server.
Inoltre controllando il contenuto del log del server (di default si trova /var/log/apt-cacher-ng/apt-cacher.log) si potrà notare l’indirizzo IP del client che genera richieste al server come nella figura seguente:
apt-cacher-ng log

Troubleshooting

se durante l’esecuzione del comando update si ottiene qualcuno dei seguenti errori:
W: Impossibile recuperare http://it.archive.ubuntu.com/ubuntu/dists/trusty-backports/universe/source/Sources  Somma hash non corrispondente
W: Si è verificato un errore nel verificare la firma. Il repository non è aggiornato e verranno usati i file indice precedenti. Errore GPG: http://it.archive.ubuntu.com trusty-backports Release: Le seguenti firme non erano valide: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>

W: Impossibile recuperare http://it.archive.ubuntu.com/ubuntu/dists/trusty-backports/Release  

W: Impossibile scaricare alcuni file di indice: saranno ignorati o verranno usati quelli vecchi.
bisogna pulire l’attuale cache con i seguenti comandi:
sudo rm -rf /var/lib/apt/lists/*
sudo mkdir -p /var/lib/apt/lists/partial
quindi aggiornare le eventuali firme segnalate come non valide (errore …BADSIG 40976EAF437D05B5…) con il seguente comando:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5
dove 40976EAF437D05B5 è l’ID indicato nell’errore.
Se riavviando il servizio con il comando:
sudo /etc/init.d/apt-cacher-ng restart
ottenete il seguente errore:
Failed to create cache directory or directory not writable.
Check the permissions of /var/cache/apt-cacher-ng!
verificate se la directory esiste. Se esiste eseguite il seguente comando per attribuire i permessi corressi:
sudo chown -R apt-cacher-ng:apt-cacher-ng /var/cache/apt-cacher-ng
se invece non esiste createla con il comando *mkdir* e poi eseguite il comando precedente per assegnare i permessi corretti.

Nessun commento:

Posta un commento