Configurazione di un server push

La configurazione di un server push consiste essenzialmente di due attività: la configurazione dell'accesso rsync (come per un normale mirror di tipo pull) e la configurazione del meccanismo di attivazione via ssh (per avviare il mirroring push).

(Per maggiori informazioni su cosa è un server push si veda la spiegazione sul push mirroring.)

Configurazione di rsync

Installare rsync 2.1.1 o superiore. Se sul proprio sito si utilizza Debian, è sufficiente installare il pacchetto rsync più recente.

Creare il file rsyncd.conf e inserirvi qualcosa di simile a questo:

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

[debian]
  path = /srv/debian/mirror
  comment = The Debian Archive (~250 GB)
  auth users = authorized_account1,authorized_account2,authorized_accountN
  read only = true
  secrets file = /etc/rsyncd/debian.secrets

Aggiungere nel file /etc/rsyncd/debian.secrets una voce per ogni sito verso cui si vuole effettuare il pushing:

authorized_account1:a_password
authorized_account2:another_password
authorized_accountN:password

Con questo si è dato accesso ai mirror destinazione all'archivio sulla propria macchina.

Per far avviare il demone rsync da inetd si deve aggiungere il servizio rsync nel file /etc/services (se non fosse già presente), in questo modo:

rsync           873/tcp

Per abilitare il demone da inetd, aggiungere quanto segue al proprio file /etc/inetd.conf:

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

(Ricordasi di inviare a inetd un segnale HUP per forzare la rilettura del file di configurazione dopo la modifica).

Configurazione del meccanismo di attivazione con ssh

Creare una nuova chiave ssh per l'account usato dal mirror Debian. Assicurarsi di non sovrascrivere la chiave ssh originale usando l'opzione -f, per esempio:

ssh-keygen -f ~/.ssh/identity.mysite

Assicurarsi che la nuova chiave pubblica (~/.ssh/identity.mysite.pub) contenga all'inizio questo, dove IPADDRESS è l'indirizzo IP del proprio mirror di origine:

no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/bin/ftpsync",from="IPADDRESS"

Occorre configurare uno script che contatterà i mirror destinazione. Il tarball ftpsync contiene lo script runmirrors che si occupa di tutte le operazioni. Semplicemente cambiando il proprio ftpsync.conf in modo da includere l'impostazione HUB=true, copiare runmirrors.conf.sample in runmirrors.conf e runmirrors.mirror.sample in runmirrors.mirror e modificare il file di configurazione in modo da adattarlo al proprio sistema. Poi in runmirrors.mirror elencare tutti i mirror di downstream e la coppia ftpsync/runmirror farà tutto il lavoro.

L'effetto sarà che il proprio sistema tenterà di collegarsi con ssh ai mirror di downstram dopo aver completato l'aggiornato del proprio mirror. Per effettuare questa operazione si assume di aver dato a chi gestisce i mirror di downstream la chiave ssh che è stata configurata in runmirrors e che loro abbiano aggiunto la chiave nei propri ~/.ssh/authorized_keys come descritto in precedenza.

In caso di problemi, contatteci.