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
. Wenn Ihr
Rechner unter Debian läuft, installieren Sie einfach das
rsync-Paket.
Erzeugen Sie die Datei rsyncd.conf
und schreiben Sie
etwas Ähnliches wie das Folgende hinein:
uid = nobody gid = nogroup max connections = 50 socket options = SO_KEEPALIVE [debian] path = /srv/debian/mirror comment = The Debian Archive (https://www.buy-develop.eu.org/mirror/size) auth users = * 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:
site1.example.com:ein_Passwort site2.example.com:ein_weiteres_Passwort site3.example.net:Passwort
Sie haben jetzt den in der Hierarchie tiefergelegenen Spiegeln
Zugriff zu Ihrem Rechner gewährt. Wenn Sie den rsync-Zugriff
für jedermann ermöglichen wollen, überspringen Sie die
Einstellungen für auth users
und secrets file
in der Datei rsyncd.conf
. Sie benötigen dann auch
die oben genannte Datei für Passwörter (/etc/rsyncd/debian.secrets
)
nicht.
Sie möchten wahrscheinlich den rsync-Daemon von inetd aufrufen
lassen. Um den Daemon 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, mittels ssh-keygen
.
Wenn Ihr Zugang bereits einen Schlüssel für andere Zwecke enthält,
sollten Sie einen neuen Schlüssel erzeugen und in einer anderen
Datei speichern, indem Sie ssh-keygen -f ~/.ssh/identity.mysite
aufrufen.
Die in der Hierarchie tiefergelegenen Spiegel müssen nun
command="~/bin/ftpsync",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <Inhalt von Ihrer Datei ~/.ssh/<key>.pub>
zu ihrer Datei ~/.ssh/authorized_keys
hinzufügen.
Sie müssen den Spiegelprozess so einrichten, dass die tiefergelegenen
Spiegel kontaktiert werden, wenn Ihr Spiegel fertig aktualisiert wurde.
Die ftpsync-Suite 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).