Debmirror einrichten

From LUGUM

Jump to: navigation, search

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

Persönliche Werkzeuge