GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare il server di repository APT locale su Ubuntu 20.04

Uno dei motivi per cui potresti considerare di configurare un server di repository apt locale è ridurre al minimo la larghezza di banda richiesta se hai più istanze di Ubuntu da aggiornare. Prendi ad esempio una situazione in cui hai circa 20 server che devono essere tutti aggiornati due volte a settimana. Potresti risparmiare una grande quantità di larghezza di banda perché tutto ciò che devi fare è aggiornare tutti i tuoi sistemi su una LAN dal tuo server di repository locale.

In questa guida imparerai come configurare un server di repository apt locale su Ubuntu 20.04 LTS.

Prerequisiti

  • Sistema Ubuntu 20.04 LTS
  • Server Web Apache
  • Minimo di 170 GB di spazio libero su disco sul file system /var/www/html
  • Connessione Internet stabile

Passaggio 1) Crea un server Web Apache locale

Prima di tutto, accedi al tuo Ubuntu 20.04 e configura il server web Apache come mostrato.

$ sudo apt install -y apache2

Abilita il servizio Apache2 in modo che sia persistente durante il riavvio. Esegui il comando seguente

$ sudo systemctl enable apache2

La directory principale dei documenti predefinita di Apache si trova nel percorso /var/www/html. Successivamente creeremo una directory di repository in questo percorso che conterrà i pacchetti richiesti necessari.

Fase 2) Crea una directory di repository di pacchetti

Successivamente, creeremo una directory di repository locale chiamata ubuntu nel percorso /var/www/html.

$ sudo mkdir -p /var/www/html/ubuntu

Imposta le autorizzazioni richieste sulla directory creata sopra.

$ sudo chown www-data:www-data /var/www/html/ubuntu

Passaggio 3) Installa apt-mirror

Il prossimo passo è installare il pacchetto apt-mirror, dopo aver installato questo pacchetto otterremo il comando o lo strumento apt-mirror che scaricherà e sincronizzerà i pacchetti debian remoti con il repository locale sul nostro server. Quindi, per installarlo, esegui seguendo

$ sudo apt update
$ sudo apt install -y apt-mirror

Passaggio 4) Configura i repository per il mirroring o la sincronizzazione

Una volta installato apt-mirror, la sua configurazione '/etc/apt/mirrror.list' viene creata automaticamente. Questo file contiene un elenco di repository che verranno scaricati o sincronizzati nella cartella locale del nostro server Ubuntu. Nel nostro caso la cartella locale è "/var/www/html/ubuntu/". Prima di apportare modifiche a questo file, eseguiamo prima il backup.

$ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list-bak

Ora modifica il file usando l'editor vi e aggiorna base_path e repository come mostrato di seguito.

$ sudo vi /etc/apt/mirror.list

############# config ###################
set base_path    /var/www/html/ubuntu
set nthreads     20
set _tilde 0
############# end config ##############
deb http://archive.ubuntu.com/ubuntu focal main restricted universe \
 multiverse
deb http://archive.ubuntu.com/ubuntu focal-security main restricted \
universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted \
universe multiverse
clean http://archive.ubuntu.com/ubuntu

Salva ed esci dal file.

Nel caso tu abbia notato che ho usato i repository di pacchetti LTS di Ubuntu 20.04 e ho commentato i repository di pacchetti src perché non ho abbastanza spazio sul mio sistema. Se desideri scaricare o sincronizzare anche i pacchetti src, decommenta le righe che iniziano con "deb-src".

Passaggio 5) Avvia il mirroring dei repository remoti nella cartella locale

Prima di avviare il mirroring o la sincronizzazione, copia lo script postmirror.sh nella cartella /var/www/html/ubuntu/var usando il comando cp sottostante.

$ sudo mkdir -p /var/www/html/ubuntu/var
$ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var

Ora è il momento di iniziare a eseguire il mirroring dei pacchetti dai repository remoti alla cartella locale del nostro sistema. Esegui di seguito:

$ sudo apt-mirror

Il comando sopra può anche essere avviato in background usando il comando sotto nohup,

$ nohup sudo apt-mirror &

Per monitorare l'avanzamento del mirroring, utilizzare di seguito,

$ tail nohup.out

In Ubuntu 20.04 LTS, apt-mirror sincronizza la directory CNF e i suoi file, quindi dobbiamo scaricare e copiare manualmente la cartella e i suoi file. Quindi, per evitare di scaricare manualmente la directory CNF, crea uno script di shell con i contenuti seguenti,

$ vi cnf.sh
#!/bin/bash
for p in "${1:-focal}"{,-{security,updates}}\
/{main,restricted,universe,multiverse};do >&2 echo "${p}"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-amd64.xz"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-i386.xz"
done

salva e chiudi lo script.

Esegui lo script per scaricare la directory CNF e i suoi file.

$ chmod +x cnf.sh
$ bash  cnf.sh

Questo script creerà una cartella con il nome "archive.ubuntu.com" nella directory di lavoro attuale. Copia questa cartella nella cartella mirror,

$ sudo cp -av archive.ubuntu.com  /var/www/html/ubuntu/mirror/

Nota : Se non sincronizziamo la directory cnf, sui computer client otterremo i seguenti errori, quindi per risolvere questi errori dobbiamo creare ed eseguire lo script sopra.

E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal/restricted/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal-updates/main/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal-security/main/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]

Pianificazione della sincronizzazione automatica dei repository

Configura un lavoro cron per aggiornare automaticamente i nostri repository apt locali. Si consiglia di impostare questo processo cron ogni giorno di notte.

Esegui "crontab -e" e aggiungi il seguente comando da eseguire ogni giorno all'1:00 di notte.

$ sudo crontab -e

00  01  *  *  *  /usr/bin/apt-mirror

Salva e chiudi.

Nota:nel caso in cui Firewall sia in esecuzione su Ubuntu Server, consenti la porta 80 utilizzando il seguente comando

$ sudo ufw allow 80

Fase 6) Accesso al repository APT locale tramite browser web

Per accedere al nostro repository apt configurato localmente tramite browser web, digita il seguente URL:

http:///ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/

Passaggio 7) Configura il client Ubuntu 20.04 per utilizzare il server repository apt locale

Per testare e verificare se il nostro server di repository apt funziona correttamente o meno, ho un altro sistema Ubuntu 20.04 lts in cui aggiornerò il file /etc/apt/sources.list in modo che il comando apt punti ai repository locali anziché a quelli remoti.

Quindi, accedi al sistema, modifica quanto segue in sources.list

http://archive.ubuntu.com/ubuntu
to
http://169.144.104.219/ubuntu/mirror/archive.ubuntu.com/ubuntu

Qui "169.144.104.219" è l'indirizzo IP del mio server di repository apt, sostituisci questo indirizzo IP adatto al tuo ambiente.

Assicurati anche di commentare tutti gli altri repository che non sono rispecchiati sul nostro server di repository apt. Quindi, dopo aver apportato le modifiche al file sources.list, sembrerebbe di seguito:

Ora esegui il comando "apt update" per verificare che la macchina client stia ricevendo l'aggiornamento dal nostro server di repository apt locale,

$ sudo apt update

Perfetto, l'output sopra conferma che la macchina client è in grado di connettersi con successo al nostro repository per recuperare i pacchetti e gli aggiornamenti. Questo è tutto da questo articolo, spero che questa guida ti aiuti a configurare il server del repository apt locale sul sistema Ubuntu 20.04.

Leggi anche :14 utili esempi di comandi "ls" in Linux


Ubuntu
  1. Configurazione del server WebDAV su Ubuntu Linux

  2. Come configurare il server Rsyslog su Ubuntu 18.04 LTS

  3. 4 passaggi per configurare il repository locale in Ubuntu utilizzando APT-mirror

  4. Come configurare il server NTP su Ubuntu e LinuxMint

  5. Imposta il server Rsyslog su Ubuntu 20.04 - Come farlo?

Come configurare il server Mosquitto MQTT su Ubuntu 16.04

Come configurare il server multiplayer di Minecraft su Ubuntu 16.04

Come configurare OpenVPN su Ubuntu Server

Come configurare Git Server su Ubuntu 20.04

Come configurare il server Rsyslog su Ubuntu

Come configurare il server DHCP su Ubuntu