Einer der Gründe, warum Sie die Einrichtung eines lokalen apt-Repository-Servers in Betracht ziehen könnten, ist die Minimierung der erforderlichen Bandbreite, wenn Sie mehrere Instanzen von Ubuntu aktualisieren müssen. Nehmen Sie zum Beispiel eine Situation, in der Sie etwa 20 Server haben, die alle zweimal pro Woche aktualisiert werden müssen. Sie könnten viel Bandbreite sparen, da Sie lediglich alle Ihre Systeme über ein LAN von Ihrem lokalen Repository-Server aktualisieren müssen.

Schritt 1)
Erstellen Sie einen lokalen Apache-Webserver

sudo apt install -y apache2
sudo systemctl enable apache2

Schritt 2)
Erstellen Sie ein Paket-Repository-Verzeichnis

sudo mkdir -p /var/www/html/ubuntu
sudo chown www-data:www-data /var/www/html/ubuntu

Schritt 3)
Installieren Sie apt-mirror

sudo apt update
sudo apt install -y apt-mirror

Schritt 4)
Konfigurieren Sie Repositories zum Spiegeln oder Synchronisieren

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

Bearbeiten Sie nun die Datei mit dem vi-Editor und aktualisieren Sie base_path und Repositories wie unten gezeigt.

sudo nnao /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

Speichern und beenden Sie die Datei.

Schritt 5)
Starten Sie die Spiegelung der Remote-Repositories in den lokalen Ordner

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

Jetzt ist es an der Zeit, die Pakete aus Remote-Repositories in den lokalen Ordner unseres Systems zu spiegeln. Unten ausführen:

sudo apt-mirror

Der obige Befehl kann auch im Hintergrund mit dem folgenden nohup-Befehl gestartet werden.

nohup sudo apt-mirror &

In Ubuntu 20.04 LTS synchronisiert apt-mirror das CNF-Verzeichnis und seine Dateien, daher müssen wir den Ordner und seine Dateien manuell herunterladen und kopieren. Um das manuelle Herunterladen des CNF-Verzeichnisses zu vermeiden, erstellen Sie ein Shell-Skript mit dem folgenden Inhalt:

nano 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

Speichern und schließen Sie das Skript.

Führen Sie das Skript aus, um das CNF-Verzeichnis und seine Dateien herunterzuladen.

chmod +x cnf.sh
bash cnf.sh

Dieses Skript erstellt einen Ordner mit dem Namen „archive.ubuntu.com“ im aktuellen Arbeitsverzeichnis. Kopieren Sie diesen Ordner in den Spiegelordner:

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

Planen der automatischen Synchronisierung von Repositories

Konfigurieren Sie einen Cron-Job, um unsere lokalen apt-Repositories automatisch zu aktualisieren. Es wird empfohlen, diesen Cronjob täglich nachts einzurichten. Führen Sie „crontab -e“ aus und fügen Sie den folgenden Befehl hinzu, der täglich um 1:00 Uhr nachts ausgeführt werden soll:

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

Speichern und schließen.

Hinweis: Falls die Firewall auf Ubuntu Server ausgeführt wird, lassen Sie Port 80 mit dem folgenden Befehl hinzu.

sudo ufw allow 80

Schreibe einen Kommentar