Een push-server opzetten

Het opzetten van een push-server bestaat uit twee basistaken: het instellen van rsync-toegang (voor het normale pull-spiegelen) en het instellen van het ssh-triggermechanisme (voor het pushen van het pull-spiegelen).

(Lees voor meer informatie over wat een push-server is, de uitleg over push-spiegelen.)

rsync opzetten

Installeer rsync. Indien uw site Debian gebruikt, moet u gewoon het pakket rsync installeren.

Maak het bestand rsyncd.conf aan en zet er iets als dit in:

uid = nobody
gid = nogroup
max connections = 50
socket options = SO_KEEPALIVE

[debian]
  path = /srv/debian/mirror
  comment = Het Debian-archief (https://www.debian.org/mirror/size)
  auth users = *
  read only = true
  secrets file = /etc/rsyncd/debian.secrets

Voeg in het bestand /etc/rsyncd/debian.secrets een item toe voor elke site waarnaar u pusht:

site1.example.com:een_wachtwoord
site2.example.com:nog_een_wachtwoord
site3.example.net:wachtwoord

U hebt nu de benedenstroomse spiegelservers toegang gegeven tot het archief op uw machine. Indien u iedereen rsync-toegang wilt verlenen, sla dan het instellen van auth users en secrets file over in rsyncd.conf. U heeft dan ook geen secrets-bestand nodig.

U zult waarschijnlijk de rsync-achtergronddienst willen starten vanuit inetd. Om de achtergronddienst in te schakelen, voegt u het volgende toe aan uw bestand /etc/inetd.conf:

rsync      stream      tcp         nowait      root /usr/bin/rsync rsyncd --daemon

(Vergeet niet om inetd een HUP-signaal te sturen om het te vertellen dat het zijn configuratiebestand opnieuw moet lezen nadat het bestand is gewijzigd.)

Het ssh-triggermechanisme opzetten

Maak met behulp van ssh-keygen een nieuwe ssh-sleutel aan voor het account dat u gebruikt om Debian te spiegelen. Als u met uw account al een sleutel heeft voor andere doeleinden, wilt u misschien een nieuwe maken en deze opslaan in een ander bestand met behulp van ssh-keygen -f ~/.ssh/identiteit.mijnsite

Uw benedenstroomse spiegelservers moeten dan aan hun bestand ~/.ssh/authorized_keys het volgende toevoegen:

command="~/bin/ftpsync",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <inhoud van uw bestand ~/.ssh/<key>.pub>

U moet uw spiegelingsproces zo instellen dat het contact opneemt met uw benedenstroomse spiegelservers wanneer het klaar is met zijn spiegelingstaak. De suite ftpsync bevat het script runmirrors dat alle benodigde taken voor u afhandelt. U dient gewoon uw bestand ftpsync.conf aan te passen, zodat het de instelling HUB=true bevat, het bestand runmirrors.conf.sample te kopiëren naar runmirrors.conf en runmirrors.mirror.sample te kopiëren naar runmirrors.mirror, en het configuratiebestand zo te configureren dat het aangepast is aan uw systeem. Daarna moet u al uw benedenstroomse spiegelservers vermelden in runmirrors.mirror, en het duo ftpsync/runmirror zal al het zware werk voor u doen.

Het effect zal zijn dat uw systeem zal proberen om naar uw benedenstroomse spiegelservers te ssh-en, nadat uw eigen spiegelserver bijgewerkt is, zodat zij hun eigen updates kunnen starten. Dit veronderstelt dat u de operatoren van uw benedenstroomse spiegelservers de ssh-sleutel gaf die u door runmirrors laat gebruiken en dat ze die aan hun eigen ~/.ssh/authorized_keys toevoegden zoals hierboven beschreven.

Mocht u hiermee problemen ervaren, neem dan contact op met ons.