Configurar init = false em lsyncd.lau nos servidores da Web parece funcionar para mim.
Você ainda precisa invocar a sincronização unidirecional do mestre para o servidor da Web recém-iniciado depois disso.
Minha empresa usa vários servidores EC2 que serão dimensionados para cima e para baixo de acordo com a carga que estamos recebendo em nossos sites a qualquer momento. Por causa da nossa discussão aqui, estamos executando quatro instâncias:
Estou usando o lsyncd para manter todos os servidores da Web em sincronia e, na maioria das vezes, ele está funcionando muito bem. Estamos usando um esquema de sincronização bidirecional, de modo que cada servidor da web seja sincronizado com o mestre e o mestre sincronize com cada servidor da web. Assim, os servidores web são mantidos em sincronia, mesmo que eles não estejam se sincronizando diretamente.
Estou tendo um problema que estou tendo dificuldade em resolver, no entanto. Ocorre sob estas circunstâncias:
Nessa circunstância, gostaria que o seguinte acontecesse:
Infelizmente, atualmente, quando um servidor inativo é iniciado, quando o lsyncd é iniciado, ele envia as alterações de volta ao master antes de atualizar sua própria base de código , sobrescrevendo o novo código com o antigo.
Assim, antes do lsyncd iniciar, eu gostaria de poder sincronizar o código dos servidores web com o do mestre, talvez executando um rsync de uma via simples contra as duas máquinas.
Estamos executando o lsyncd v.2 e tentamos fazer isso acontecer usando as opções de configuração "bash" documentadas no manual lsyncd . Meu arquivo de configuração é assim:
settings = {
logfile = "/home/user/log/lsyncd/log.txt",
statusFile = "/home/user/log/lsyncd/status.txt",
maxProcesses = 2,
nodaemon = false,
}
bash = {
onStartup = "rsync [email protected]:/home/user/www /home/user/www"
}
sync{
default.rsyncssh,
source="/home/user/www/",
host="[email protected]",
targetdir="/home/user/www/",
rsyncOpts="-ltus",
excludeFrom="/home/user/conf/lsyncd/exclude"
}
(Eu obviamente redigi esse arquivo para proteger as identidades dos culpados.)
Simplificando, isso não está funcionando.
De que outra forma eu posso abordar esse problema? Eu estava olhando para a opção --delete-after
em man rsync
, mas não acho que faça o que estou procurando.
Há alguma sugestão sobre como devo abordar esse problema?
Obrigado por emprestar seu tempo e conhecimento.
Chris
Configurar init = false em lsyncd.lau nos servidores da Web parece funcionar para mim.
Você ainda precisa invocar a sincronização unidirecional do mestre para o servidor da Web recém-iniciado depois disso.
Tags rsync amazon-ec2