sleep $((RANDOM % MAXWAIT))
em que MAXWAIT é o atraso máximo desejado em segundos.
Estou usando o func para executar comandos paralelos em nossos servidores.
No outro dia, tivemos um problema quando uma reinicialização do serviço de puppet
via func
fez todos os nossos servidores atingirem o puppetmaster
ao mesmo tempo.
Minha pergunta: Como posso executar o mesmo comando exato em um conjunto de servidores ao adicionar um atraso antes de ser executado nos servidores individuais?
Por exemplo: random_delay && service puppet restart
Estou interessado na parte random_delay
do comando.
Eu gosto bastante da solução inovadora, ainda que não ideal, do S19N. Eu só digo que é menos que ideal, pois ainda é pouco determinista quando as coisas realmente acontecem. Eu prefiro ser capaz de garantir quando as coisas vão acontecer, e que coisas vão acontecer quando acontecer.
A orquestração de fantoches é realmente um problema difícil .
Uma das soluções de "melhores práticas" é usar o MCollective que não só permitirá a configuração quando o fantoche for executado em seu cluster de máquinas , mas você também pode usá-lo para outros problemas de orquestração semelhantes.