Einen eigenen Debian-Mirror mit apt-mirror erstellen
Kategorie: Debian / Ubuntu
Hier möchte ich zeigen, wie man in einigen wenigen Schritten einen eigenen Debian-Mirror aufbauen kann.
Das kann z.B. sinnvoll sein, um Traffic zu reduzieren und Updates von einem internen Server zu installieren, statt die Updates pro Server von einem externen FTP-Server herunter zu laden.
Das hierfür benötigte Paket installiert man mit:
apt-get install apt-mirror
Jetzt sollte man die Datei /etc/apt/mirror.list bearbeiten, ein Bsp.:
set base_path /var/spool/apt-mirror set mirror_path $base_path/mirror set skel_path $base_path/skel set var_path $base_path/var set cleanscript $var_path/clean.sh set defaultarch i386 set nthreads 20 set _tilde 0 deb-amd64 http://ftp2.de.debian.org/debian lenny main contrib deb-amd64 http://ftp2.de.debian.org/debian lenny main main/debian-installer deb http://ftp2.de.debian.org/debian lenny main contrib deb http://ftp2.de.debian.org/debian lenny main main/debian-installer
ftp2.de.debian.org ist natürlich nur ein Bsp., eine Liste der aktuellen Mirrors findet man hier.
Die Pfade entsprechen der Standard-Debian-Installation, können aber bei Bedarf entspr. geändert werden.
Standardmäßig werden sich die Dateien später in /var/spool/apt-mirror befinden.
Die Performance kann man noch mit der Direktive set nthreads beeinflussen. Hier legt man fest, wie viele gleichzeitige Download-Prozesse apt-mirror zum Synchronisieren des Repository's starten darf.
In meiner Beispieldatei habe ich i386 als Standard-Architektur eingetragen, d.h. deb und deb-i386 wären für die u.a. Zeilen gleichwertig. Für den Download der 64-Bit-Dateien leitet man die Zeilen mit deb-amd64 ein.
Nachdem alle Änderungen abgeschlossen sind, startet man den Download der Dateien mit apt-mirror.
Es empfiehlt sich, dafür einen Cron-Job anzulegen, der das Repository täglich aktualisiert und mit den neuesten Updates versorgt.
Damit das Repository auch erreichbar ist, ist der einfachste Weg, einen Webserver zu installieren:
apt-get install apache2 apache2-mpm-prefork
Jetzt legt man einen Link im Webserver-Root an, z.B.:
cd /var/www && ln -s /var/spool/apt-mirror/ftp2.de.debian.org/debian debian
Die Datei /etc/sites-available/default habe ich hier stark vereinfacht und muß ggf. an die eigenen Sicherheitsanforderungen angepasst werden:
<VirtualHost *:80>
DocumentRoot /var/www/
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride none
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride none
</Directory>
LogLevel warn
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Nach einen /etc/init.d/apache2 restart sollte der Zugriff auf das Repository über einen Browser funktionieren.
Je nach Anzahl der Server und der Performance des Mirror-Servers sollte man dann noch die Datei /etc/apache2/apache2.conf anpassen, indem man die Werte z.B. in der prefork-Sektion (StartServers, MinSpareServers, MaxSpareServers,MaxClients,...) entspr. erhöht. Diese sind standardmäßig sehr niedrig eingestellt. Damit die Änderungen wirksam werden, muß man den Webserver neu starten.
Jetzt muß man das Repository nur noch auf den Clients in der /etc/apt/sources.list eigetragen werden, z.B.:
deb http://192.168.1.254/debian lenny main contrib
Zu Anschauungszwecken habe ich hier eine IP genommen, es empfiehlt sich aber ein Hostname.
Nach dem Ändern der Datei sollte ein apt-get update die Liste der Updates von dem neuen Mirror herunterladen!
11.07.2010 18:55