Debmirror einrichten
From LUGUM
Erstellung eines Debian-Mirrors mit debmirror
Inhaltsverzeichnis |
Das Script
Zur einfacheren Installation gibt es hier ein Script zum Installieren von Debmirror
Installieren per Hand
Als erstes installieren wir debmirror
# apt-get install debmirror debian-keyring patch
Danach legen wir einen User und Gruppe "mirror" an, unter dessen Rechten wir "debmirror" ausführen.
# groupadd mirror # useradd -g mirror -d /mirror -c "Debian Mirror" mirror
Nun erzeugen wir die Verzeichnisse für den Mirror
# mkdir -p /mirror/debian # chown -R mirror:mirror /mirror
und importieren die GPG-Keys. Der gpg- Archiv-key ändert sich Jährlich und muss deswegen einmal im Jahr neu Importiert werden. Zu finden ist der Key auch unter http://ftp-master.debian.org/ unter "Archive signing key"
# su mirror -c "gpg --keyserver subkeys.pgp.net --recv-keys 0x2D230C5F" oder (Achtung! die Datei sich jährlich ändert.) wget http://ftp-master.debian.org/archive-key-4.0.asc && su mirror -c "gpg --import archive-key-4.0.asc"
Zum leichteren Ausführen von debmirror erstellen wir noch eine Datei /usr/local/bin/mirror
#!/bin/bash
MIRRORUSER=mirror
MIRRORUID=`cat /etc/passwd | grep ${MIRRORUSER}: | cut -d : -f 3`
if [ ! $UID -eq $MIRRORUID ]; then
echo "Warnung: Dieses Script wird nicht vom user $MIRRORUSER ausgefuerhrt"
echo "Warnung: Bitte per \"su $MIRRORUSER -c mirror\" starten"
exit 1
fi
logger -t mirror[$$] Updating Debian Mirror
debmirror /mirror/debian --progress --nosource --host=gatekeeper \
--root=/debian --dist=sid,sarge,etch --section=main,contrib,non-free \
--method=ftp --arch=i386 --passive --getcontents #--ignore-release-gpg # Das sollte man einkommentieren wenn man Probleme mit der gpg überprüfung hat.
logger -t mirror[$$] Finished Updating Debian Mirror
Hinweis: Der Parameter --host für den Aufruf von debmirror muß noch mit dem Namen des zu verwendenden Servers versehen werden. Debian bietet das Packet netselect-apt an, welches bei der Ermittlung des günstigsten Servers behilflich ist.
Nun geben wir noch Ausführechte auf /usr/local/bin/mirror
# chmod 700 /usr/local/bin/mirror
Jetzt können wir mit su mirror -c mirror den Allgemeinen Mirror spiegeln.
Den lokalen mirror können wir mit diesen Einträgen in der /etc/apt/sources.list benutzen.
deb file:/mirror/debian sid main non-free contrib
Nach dem ersten Spiegeln müssen einmalig statische Links gesetzt werden.
# cd /mirror/debian/dists # ln -s sarge stable # ln -s etch testing # ln -s sid unstable
Cron Eintrag
Zur Täglichen Spiegelung nutzen wir Cron und mit crontab -e -u mirror fügen wir einen neuen Eintrag hinzu.
55 5 * * * /usr/local/bin/mirror >/dev/null 2>&1
HTTP-Zugriff
Um einen Mirror für anderere Rechner anzubieten, ist es vorteilhaft dies über http:// zu machen
dazu einfach in /etc/apache2/httpd.conf folgendes ein.
<Directory /mirror>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /debian /mirror/debian
Wer seinen apache anderst konfiguriert hat, möge seinen apache nach eigenen Bedürfnissen anpassen.
In die /etc/apt/sources.list ist dann je Bedarf eines der folgenden einzutragen:
deb http://(rechnername)/debian/ sarge main non-free contrib deb http://(rechnername)/debian/ etch main non-free contrib deb http://(rechnername)/debian/ sid main non-free contrib
FTP-Zugriff
Proftp
Für alle mit Proftpd sind folgende Zeilen für einen Anonymous Zugang
in die /etc/proftpd.conf eintzutragen
<Anonymous ~mirror>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 20
DisplayLogin welcome.msg
DisplayFirstChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
In die /etc/apt/sources.list ist dann eines der folgenden einzutragen:
deb ftp://(rechnername)/debian/ sarge main non-free contrib deb ftp://(rechnername)/debian/ etch main non-free contrib deb ftp://(rechnername)/debian/ sid main non-free contrib
Andreas Kraus lug@ak1301.de

