Nota: La página original es más nueva que esta traducción.
Configurar un servidor push consiste en dos tareas básicas: configurar
el acceso rsync (el normal, para replicación pull
) y configurar los
mecanismos de activación por ssh (para hacer push
a la replicación pull).
(Para más información sobre lo que es un servidor push, lea la explicación de la replicación push.)
Instale rsync 2.1.1 o superior. Si su sitio está ejecutando
Debian, sólo instale el último paquete de
rsync.
Cree el archivo rsyncd.conf y ponga algo similar a esto
en él:
uid = nobody gid = nogroup max connections = 25 socket options = SO_KEEPALIVE [debian] path = /svr/debian/mirror comment = Archivo FTP de Debian (~250 GB) auth users = authorized_account1,authorized_account2,authorized_accountN read only = true secrets file = /etc/rsyncd/debian.secrets
Añada una entrada para cada sitio del que esté haciendo push en el archivo
/etc/rsyncd/debian.secrets:
authorized_account1:una_contraseña authorized_account2:otra_contraseña authorized_accountN:contraseña
Ahora ha dado acceso a los sitios de réplica de flujo de bajada al archivo de su máquina.
Probablemente quiere iniciar el demonio rsync desde inetd. Para hacer esto,
tiene que añadir el servicio en el archivo /etc/services (si no
está ya allí), algo así como:
rsync 873/tcpPara activar el demonio desde inetd, añada lo siguiente a su archivo
/etc/inetd.conf:
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
(Recuerde enviar a inetd una señal HUP para decirle que vuelva a leer su archivo de configuración tras modificar el archivo.)
Cree una nueva clave ssh para la cuenta que va a usar réplica de Debian. Asegúrese de que no sobreescribe su clave original ssh usando la opción -f, por ejemplo:
ssh-keygen -f ~/.ssh/identidad.misitio
Asegúrese de que la nueva clave pública (~/.ssh/identidad.misitio.pub) contiene esto al inicio:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/sync &"
Necesita configurar un script que contacte con los sitios de réplica
de flujo de bajada. Cree un archivo llamado signal que
contenga esto:
#!/bin/sh # This script is called to signal the remote host that it is time to # mirror the archive. echo Signalling $1 ssh -o"BatchMode yes" -o"user $2" "$1" -i $HOME/.ssh/identity.mysite sleep 1
Este script entrará a una máquina remota usando la clave ssh especial que
creó antes, proporcionada para que cada operador de réplica la añada a su
propio ~/.ssh/authorized_keys (reemplazando también sync
por anonftpsync
o como se llame su script para iniciar la replicación). El script por sí mismo no hará nada útil remotamente, la única orden que se ejecutará es la que se ha especificado en la configuración de la clave.
Realmente, para señalizar a las réplicas, necesita añadir las líneas
./signal <sitio> <usuario> tras la ejecución de rsync.
Así, en cuanto su sitio haya terminado de replicarse del sitio fuente,
empezará a lanzar la replicación de los que repliquen de usted.
Puede emplazar estas órdenes o al final de su script anonftpsync o, si lo cree más conveniente, en otro script y ejecutar este desde anonftpsync, por ejemplo:
#!/bin/sh # Este script es llamado por websync para señalizar las réplicas de bajada. ./signal some.other.site archvsync ./signal and.another.site othersiteaccount
Entonces, tan pronto como su sitio haya finalizado de replicar desde el sitio del flujo de subida, iniciará el proceso de push a aquellos flujos de bajada que tenga.
Si tiene algún problema con esto, \ póngase en contacto con nosotros.