Configurando um servidor push
Configurar um servidor push consiste em duas tarefas básicas: configurar o
acesso rsync (para um espelhamento normal pull
) e configurar um mecanismo
de ativação ssh (para fazer pushing
do espelhamento pull).
(Para mais informações sobre o que é um servidor push, por favor leia a explicação sobre o espelhamento push).
Configurando rsync
Instale o rsync
. Se o seu site está rodando o Debian, somente
instale o pacote rsync.
Crie o arquivo rsyncd.conf
e insira alguma coisa similar a isto:
uid = nobody gid = nogroup max connections = 50 socket options = SO_KEEPALIVE [debian] path = /srv/debian/mirror comment = O repositório Debian (https://www.debian.org/mirror/size) auth users = * read only = true secrets file = /etc/rsyncd/debian.secrets
Adicione uma entrada para cada site que você vai fazer pushing no arquivo
/etc/rsyncd/debian.secrets
:
site1.example.com:uma_senha site2.example.com:outra_senha site3.example.net:senha
Você agora deu aos espelhos de destino o acesso ao repositório de sua
máquina. Se você desejar fornecer acesso rsync para todos, pule as configurações
auth users
e secrets file
em rsyncd.conf
.
Você não precisa de um arquivo secrets.
Você provavelmente vai querer iniciar o daemon rsync pelo inetd.
Para habilitar o daemon, adicione o seguinte no arquivo
/etc/inetd.conf
:
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
(Lembre-se de enviar para o inetd um sinal HUP para informá-lo da releitura de seu arquivo de configuração após modificar o arquivo).
Configurando o mecanismo de ativação ssh
Crie uma nova chave ssh para a conta que você usa para espelhar o Debian
usando ssh-keygen
. Se sua conta já possui uma chave para outros
propósitos, você pode querer criar uma nova e armazená-la em um arquivo
diferente usando ssh-keygen -f ~/.ssh/identity.mysite
Então seus espelhos de destino precisarão adicionar
command="~/bin/ftpsync",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <conteúdo do seu arquivo ~/.ssh/<key>.pub>
nos seus arquivos ~/.ssh/authorized_keys
.
Você precisa configurar seu processo de espelhamento para contatar seus
espelhos de destino quando sua execução de espelhamento tiver terminado.
A suíte ftpsync contém o script runmirrors
que cuidará de todas as
tarefas para você. Simplesmente mude seu ftpsync.conf para incluir a
configuração HUB=true
, copie runmirrors.conf.sample
para runmirrors.conf
e runmirrors.mirror.sample
para
runmirrors.mirror
e configure o arquivo de configuração para se
adequar ao seu sistema. Então liste todos os seus espelhos de destino dentro de
runmirrors.mirror e a dupla ftpsync/runmirror fará todo o trabalho pesado para
você.
O efeito será que seu sistema tentará fazer um ssh para seus espelhos de destino, depois da atualização do seu próprio espelho, de modo que eles possam fazer suas próprias atualizações. Assume-se que você tenha dado a chave ssh para seus(as) operadores(as) de espelhos de destino, chave que você disse ao runmirror para ser usada, e que eles adicionaram aos seus próprios arquivos ~/.ssh/authorized_keys como descrito acima.
Se tiver qualquer problema, entre em contato conosco.