Einrichten eines Push-Spiegels
Einen Push-Spiegel aufzusetzen, besteht aus zwei Aufgaben:
Einrichten des rsync-Zugangs (für normales, Pull
-Spiegeln) und
Einrichtung des Auslöse-Mechanismus (für den pushing
-Teil des
Pull
-Spiegelns).
(Wenn Sie genauere Informationen darüber erhalten möchten, was ein Push-Spiegel ist, lesen Sie bitte die Beschreibung des Push-Spiegelns.)
rsync einrichten
Installieren Sie rsync 2.1.1 oder neuer. Wenn Ihr
Rechner unter Debian läuft, installieren Sie einfach das neueste
rsync-Paket.
Erzeugen Sie die Datei rsyncd.conf und schreiben Sie
etwas Ähnliches wie das Folgende hinein:
uid = nobody gid = nogroup max connections = 25 socket options = SO_KEEPALIVE [debian] path = /srv/debian/mirror comment = The Debian Archive (~250 GB) auth users = autorisierter_Zugang1,...,autorisierter_ZugangN read only = true secrets file = /etc/rsyncd/debian.secrets
Fügen Sie einen Eintrag für jeden Rechner zur Datei
/etc/rsyncd/debian.secrets hinzu, bei dem Sie das
Spiegeln einleiten:
autorisierter_Zugang1:ein_Passwort autorisierter_ZugangN:ein_weiteres_Passwort
Sie haben jetzt den in der Hierarchie tiefergelegenen Spiegeln Zugriff zu Ihrem Rechner gewährt.
Sie möchten wahrscheinlich den rsync-Daemon von inetd aufrufen
lassen. Um dies zu erledigen, müssen Sie den rsync-Dienst in die
Datei /etc/services eintragen (falls er dort noch nicht
steht), ungefähr wie folgt:
rsync 873/tcp
Um den Daemon per inetd zu starten, fügen Sie das Folgende zu
Ihrer Datei /etc/inetd.conf hinzu:
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
(Sie müssen dem inetd anschließend ein HUP-Signal schicken, um ihm mitzuteilen, dass die Konfiguration neu eingelesen werden soll.)
Einrichten des SSH-Auslöser-Mechanismus
Erzeugen Sie einen neuen SSH-Schlüssel für den Zugang, den Sie verwenden, um Debian zu spiegeln. Stellen Sie sicher, dass Sie den eigentlichen SSH-Schlüssel nicht überschreiben, indem Sie die Option -f verwenden, beispielsweise:
ssh-keygen -f ~/.ssh/identity.meinRechner
Stellen Sie sicher, dass der neue öffentliche Schlüssel (~/.ssh/identity.meinRechner.pub) Folgendes am Dateianfang enthält, wobei IPADDRESS die IP-Adresse Ihres Quellspiegels ist:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/bin/ftpsync",from="IPADDRESS"
Sie müssen ein Skript einrichten, das die tiefergelegenen Spiegel kontaktiert.
Das ftpsync-Tarball-Archiv enthält das Skript runmirrors, welches alle
nötigen Aktionen für Sie erledigt. Ändern Sie einfach Ihre ftpsync.conf, so dass Sie
die Einstellung HUB=true enthält, kopieren Sie
runmirrors.conf.sample nach runmirrors.conf und
runmirrors.mirror.sample nach runmirrors.mirror;
konfigurieren Sie die config-Datei Ihren Bedürfnissen entsprechend. Listen Sie
dann alle Ihre tiefergelegenen Spiegel innerhalb von runmirrors.mirror auf
und das Duo ftpsync/runmirror wird all die heftigen Transferoperationen für Sie
durchführen.
Der Effekt ist, dass, nachdem Ihr eigener Spiegel aktualisiert wurde, Ihr System versuchen wird, sich per SSH auf Ihren tiefergelegenen Spiegeln einzuloggen, so dass diese ihre Aktualisierungen starten können. Dabei wird davon ausgegangen, dass Sie den Betreibern Ihrer tiefergelegenen Spiegeln den SSH-Schlüssel gegeben haben, den runmirrors laut Ihrer Konfiguration verwendet, und dass die Betreiber ihn wie oben beschrieben zu ihrer ~/.ssh/authorized_keys hinzugefügt haben.
Falls Sie irgendwelche Probleme damit haben, kontaktieren Sie uns (auf Englisch).
