Ricerca nel sito web

Configura repository locali con 'apt-mirror' nei sistemi Ubuntu e Debian


Quando oggi il traffico e la velocità Internet casuale vengono misurati in decine di Giga in un batter d'occhio anche per i normali client Internet, qual è lo scopo di impostare una cache di repository locale sulle LAN, potresti chiedere?

Uno dei motivi è ridurre la larghezza di banda Internet e l'elevata velocità nell'estrazione dei pacchetti dalla cache locale. Ma anche un altro motivo importante dovrebbe essere la privacy. Immaginiamo che i clienti della tua organizzazione abbiano limitazioni su Internet, ma i loro box Linux necessitano di aggiornamenti di sistema regolari su software e sicurezza o semplicemente necessitano di nuovi pacchetti software. Per andare oltre, un server che funziona su una rete privata, contiene e fornisce informazioni sensibili segrete solo per un segmento di rete limitato e non dovrebbe mai essere esposto alla rete Internet pubblica.

Questi sono solo alcuni dei motivi per cui dovresti creare un mirror del repository locale sulla tua LAN, delegare un server periferico per questo lavoro e configurare i client interni per estrarre il software dal suo mirror della cache.

Ubuntu fornisce il pacchetto apt-mirror per sincronizzare la cache locale con i repository ufficiali di Ubuntu, mirror che può essere configurato tramite un server HTTP o FTP per condividere i suoi pacchetti software con client di sistema locali.

Per un mirror cache completo, il tuo server necessita di almeno 120G di spazio libero riservato ai repository locali.

Requisiti

  1. Minimo 120G di spazio libero
  2. Server Proftpd installato e configurato in modalità anonima.

Passaggio 1: configurare il server

1. La prima cosa che potresti voler fare è identificare i mirror Ubuntu più vicini e veloci vicino alla tua posizione visitando la pagina Mirror archivio Ubuntu e seleziona il tuo paese.

Se il tuo paese fornisce più mirror dovresti identificare l'indirizzo del mirror ed eseguire alcuni test basati sui risultati del ping o del traceroute.

2. Il passaggio successivo consiste nell'installare il software richiesto per configurare il repository mirror locale. Installa i pacchetti apt-mirror e proftpd e configura proftpd come demone di sistema autonomo.

sudo apt-get install apt-mirror proftpd-basic

3. Ora è il momento di configurare il server apt-mirror. Apri e modifica il file /etc/apt/mirror.list aggiungendo le posizioni più vicine (Passaggio 1) – facoltativo, se i mirror predefiniti sono abbastanza veloci o non ci sei in fretta e scegli il percorso di sistema in cui scaricare i pacchetti. Per impostazione predefinita, apt-mirror utilizza la posizione /var/spool/apt-mirror per la cache locale, ma in questo tutorial utilizzeremo il percorso di sistema di modifica e il punto set base_path direttiva nella posizione /opt/apt-mirror.

sudo nano /etc/apt/mirror.list

Inoltre puoi rimuovere i commenti o aggiungere altri elenchi di sorgenti prima della direttiva pulita – inclusi i sorgenti Debian – a seconda delle versioni di Ubuntu utilizzate dai tuoi client. Puoi aggiungere fonti da 12.04, se lo desideri, ma tieni presente che l'aggiunta di più fonti richiede più spazio libero.

Per gli elenchi delle fonti Debian visitare Debian Wiki o Debian Sources List Generator.

4. Tutto quello che devi fare ora è creare la directory del percorso ed eseguire il comando apt-mirror per sincronizzare i repository Ubuntu ufficiali con il nostro mirror locale .

sudo mkdir -p /opt/apt-mirror
sudo apt-mirror

Come puoi vedere, apt-mirror procede con l'indicizzazione e il download degli archivi presentando il numero totale di pacchetti scaricati e la loro dimensione. Come possiamo immaginare, 110-120 GB sono abbastanza grandi da richiedere del tempo per il download.

È possibile eseguire il comando ls per visualizzare il contenuto della directory.

Una volta completato il download iniziale, i download futuri saranno di piccole dimensioni.

5. Mentre apt-mirror scarica i pacchetti, puoi configurare il tuo server Proftpd. La prima cosa che devi fare è creare un file di configurazione anonimo per proftpd eseguendo il seguente comando.

sudo nano /etc/proftpd/conf.d/anonymous.conf

Quindi aggiungi il seguente contenuto al file anonymous.conf e riavvia il servizio proftd.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
  MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>

6. Il passo successivo è collegare il percorso apt-mirror al percorso proftpd eseguendo un mount di bind immettendo il comando.

sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/

Per verificarlo esegui il comando mount senza parametri o opzioni.

mount

7. L'ultimo passaggio è assicurarsi che il server Proftpd venga avviato automaticamente dopo il riavvio del sistema e la directory mirror-cache viene anche montato automaticamente sul percorso del server ftp. Per abilitare automaticamente proftpd esegui il comando seguente.

sudo update-rc.d proftpd enable

Per montare automaticamente la cache apt-mirror su proftpd aprire e modificare il file /etc/rc.local.

sudo nano /etc/rc.local

Aggiungi la seguente riga prima della direttiva exit 0. Utilizza anche un ritardo di 5 secondi prima di tentare il montaggio.

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Se estrai pacchetti dai repository Debian esegui i seguenti comandi e assicurati che le impostazioni appropriate per il file rc.local sopra siano abilitate.

sudo mkdir /srv/ftp/debian
sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/

8. Per una sincronizzazione apt-mirror giornaliera è anche possibile creare un lavoro di pianificazione del sistema da eseguire ogni giorno alle 2 del mattino. Esegui il comando crontab, seleziona il tuo editor preferito quindi aggiungi la seguente sintassi della riga.

sudo crontab –e

Nell'ultima riga aggiungi la riga seguente.

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log

Ora ogni giorno alle 2 AM la cache del repository di sistema si sincronizzerà con i mirror ufficiali di Ubuntu e creerà un file di registro.

Passaggio 2: configurare i client

9. Per configurare i client Ubuntu locali, modificare /etc/apt/source.list sui computer client in modo che punti all'indirizzo IP o al nome host di Server apt-mirror – sostituisci il protocollo http con ftp, quindi aggiorna il sistema.

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….

10. Per visualizzare i repository puoi effettivamente aprire un browser e puntare all'indirizzo IP del tuo server del nome di dominio utilizzando il protocollo FTP.

Lo stesso sistema si applica anche ai client e ai server Debian, le uniche modifiche necessarie sono il mirror Debian e l'elenco dei sorgenti.

Inoltre, se installi un nuovo sistema Ubuntu o Debian, fornisci manualmente il tuo mirror locale con il protocollo ftp quando il programma di installazione chiede quale repository utilizzare.

Il bello di avere i tuoi repository mirror locali è che sei sempre aggiornato e i tuoi client locali non devono connettersi a Internet per installare aggiornamenti o software.