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
. Se sul proprio
sito si utilizza Debian, è sufficiente installare il pacchetto
rsync.
Creare il file rsyncd.conf
e inserirvi qualcosa di
simile a questo:
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
Aggiungere nel file /etc/rsyncd/debian.secrets
una voce per
ogni sito verso cui si vuole effettuare il push:
site1.example.com:una_password site2.example.com:unaltra_password site3.example.net:password
Adesso i mirror destinazione hanno accesso all'archivio sulla
propria macchina. Per consentire l'accesso a tutti, non impostare
auth users
né secrets file
in
rsyncd.conf
. Inoltre, in seguito, non sono necessari
i file segreti.
Per abilitare il demone rsync 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 con ssh-keygen
una nuova chiave ssh per l'account usato
per eseguire l'aggiornamento del mirror Debian. Se tale account già dispone di
una chiave per altri scopi, si può crearne una nuova e salvarla in un altro
file usando ssh-keygen -f ~/.ssh/identity.mysite
Sul mirror destinazione sarà necessario aggiungere
command="~/bin/ftpsync",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <contenuto di ~/.ssh/<key>.pub file>
al file ~/.ssh/authorized_keys
.
Occorre configurare il processo di aggiornamento del mirror in modo da
contattare i mirror destinazione alla conclusione di mirror-run.
La suite 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 elencare in runmirrors.mirror tutti i mirror di downstream
e la coppia ftpsync/runmirror si occuperà di 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 in modo che questi avviino l'aggiornamento. Questa operazione richiede di aver dato a chi gestisce i mirror di downstream la chiave ssh, che la chiave sia stata configurata in runmirrors e che i gestori abbiano aggiunto la chiave nei propri ~/.ssh/authorized_keys come descritto in precedenza.
In caso di problemi, contattateci.