Standardmäßig erhalten Ubuntu-Systeme ihre Updates direkt aus dem Internet bei archive.ubuntu.com. In einer Umgebung mit vielen Ubuntu-Systemen (Server und/oder Desktops) kann dies zu einer Menge Internet-Verkehr führen, da jedes System die gleichen Updates herunterladen muss.
In einer solchen Umgebung wäre es effizienter, wenn ein System alle Ubuntu-Updates nur einmal herunterladen und an die Kunden verteilen würde. In diesem Fall werden Updates über das lokale Netzwerk verteilt.
1. debmirror
Basierend auf meiner eigenen Forschung scheint es, dass das Tool Debmirror die einfachste und unkomplizierte Art ist, einen lokalen Ubuntu-Spiegel mit einem angemessenen Datenfußabdruck von etwa 1 TB (2024) für Focal AMD64 (20.04), Jammy AMD64 (22.04) und Noble AMD64 (24.04) zu erstellen.
Es ist am besten, Ihren lokalen Spiegel mit einem öffentlichen Ubuntu-Archiv in der Nähe Ihrer physischen Lage zu synchronisieren. Dies bietet die beste Internet-Performance und Sie reduzieren auch die Belastung des globalen Archivs. Verwenden Sie die verlinkte Spiegelliste, um den besten Spiegel für Ihren Standort auszuwählen. In diesem Tutorial habe ich AT für Österreich gewählt.
2. Installieren der benötigten Software
Wir brauchen einen Webserver, der auf dem Spiegel installiert ist, um die Deb-Pakete der Server zu bedienen. Die Installation ist unkompliziert und keine weitere Konfiguration erforderlich. In diesem Beispiel bin ich mit Apache2, aber Sie können jeden Webserver verwenden, den Sie bervorzugen.
Wenn Sie mit dem Upstream-Spiegel über reguläres HTTP synchronisieren möchten, benötigen Sie keine zusätzliche Software.
Ich habe der Einfachheit die Befehle zusammengefasst. Diese Befehle Installieren alle erforderlichen Softwarepakete und legen die Verzeichnisstruktur an:
mkdir /mirror
mkdir /mirror/debmirror
mkdir /mirror/debmirror/amd64
mkdir /mirror/debmirror/mirrorkeyring
mkdir /mirror/scripts<br>apt-get update && apt-get upgrade -y
apt install apache2 debmirror gnupg rsync screen xz-utils -y
gpg --no-default-keyring --keyring /mirror/debmirror/mirrorkeyring/trustedkeys.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg
cd /var/www/html
ln -s /mirror/debmirror/amd64 ubuntu
cd /mirror/scripts
wget https://louwrentius.com/files/debmirroramd64.sh.txt -O debmirroramd64.sh
chmod +x debmirroramd64.sh
Jetzt müssen wir dieses Skript bearbeiten und einige Parameter ändern.
Ich habe hier gleich die ganze Vorlage, die bereits angepasst ist, reinkopiert:
#### Start script to automate building of Ubuntu mirror ####
#!/bin/bash
export GNUPGHOME=/mirror/debmirror/mirrorkeyring
arch=amd64<br>section=main,restricted,universe,multiverse
#release=jammy,jammy-security,jammy-updates,jammy-backports
#release=focal,focal-security,focal-updates,focal-backports
release=focal,focal-security,focal-updates,focal-backports,jammy,jammy-security,jammy-updates,jammy-backports,noble,noble-security,noble-updates,noble-backports<br># local server for Austria (Hosted on easyname GmbH with 20 Gbps)
server=at.archive.ubuntu.com
inPath=/ubuntu
proto=rsync
outPath=/mirror/debmirror/amd64
# By default bandwidth is not limited. Uncommend this variable and set it to the apropriate<br># value in Kilobytes per second. Also don't forget to uncomment the --rsync-options line in the last section below.
# setting below 1Gbit
bwlimit=100000<br>debmirror -a $arch \
--no-source \
--rsync-options \"--partial\" \
-s $section \
-h $server \
-d $release \
-r $inPath \
--progress \
--timeout=5000 \
--method=$proto \
--rsync-options "-aIL --partial --bwlimit=$bwlimit" \
$outPath
#### End script to automate building of Ubuntu mirror ####
3. Intitial sync und cronjob
Ich empfehle, den ersten Sync nicht sofort zu starten, bevor wir einen periodischen Cron Job konfigurieren, um einen täglichen Sync durchzuführen. Der erste Sync kann eine lange Zeit dauern und den Cron-Job stören. Ich mache den sync täglich um 3 Uhr morgens.
crontab -e
0 3 * * * /mirror/scripts/debmirroramd64.sh
Wenn der Sync nun komplett abgeschlossen ist, kann man die Clients nun auf den neuen Spiegelserver (Mirror) umstellen.
Dies wird in folgender Datei gemacht:
nano /etc/apt/sources.list
Für 20.04 Focal sind folgende Einträge zu machen:
deb http://192.168.0.xxx/ubuntu/ focal main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ focal-updates main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ focal-security main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ focal-backports main restricted universe multiverse
Für 22.04 Jammy sind folgende Einträge zu machen:
deb http://192.168.0.xxx/ubuntu/ jammy main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ jammy-updates main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ jammy-security main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ jammy-backports main restricted universe multiverse
Für 24.04 Noble sind folgende Einträge zu machen:
deb http://192.168.0.xxx/ubuntu/ noble main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ noble-updates main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ noble-security main restricted universe multiverse
deb http://192.168.0.xxx/ubuntu/ noble-backports main restricted universe multiverse
Nun kann wie gewohnt mit sudo apt update die Updates gemacht werden.
QUELLE:
– https://louwrentius.com/how-to-setup-a-local-or-private-ubuntu-mirror.html#fnref:02https://launchpad.net/ubuntu/+archivemirrors
Bild: Pixabay