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

Recentemente 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'installazzione 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 cache tramite 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.

 

(Letto 729 volte di cui 1 negli ultimi 30gg)
twitterlinkedinmailby feather

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *