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.debian.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).