Estou usando o func para executar comandos paralelos em nossos servidores.
No outro dia, tivemos um problema quando uma reinicialização do serviço puppet
via func
fazia todos os nossos servidores baterem puppetmaster
ao mesmo tempo.
Minha pergunta: como posso executar o mesmo comando exato em um conjunto de servidores enquanto adiciono um atraso antes de ser executado nos servidores individuais?
Por exemplo: random_delay && service puppet restart
Estou interessado na random_delay
parte do comando.
linux
command-line-interface
puppet
Belmin Fernandez
fonte
fonte
sleep $((RANDOM % MAXWAIT))
é o caminho correto. Vou editar a resposta como tal.fqdn_rand
.dash
echo sleep $((RANDOM % 900))
retornossleep 0
. Isso significa que não é seguro usá-lo em#!/bin/sh
scripts ou locais como o crontab. (Os problemas parece ser quedash
não entende$RANDOM
)Gosto bastante da solução inovadora da S19N, mas menos do que a ideal. Só digo que é menos do que o ideal, pois ainda é amplamente não determinístico quando as coisas realmente acontecem. Prefiro garantir quando as coisas vão acontecer e quais vão acontecer quando acontecer.
A orquestração de marionetes é realmente um problema difícil .
Uma das soluções de "melhores práticas" é usar o MCollective, que não apenas permitirá que você configure quando o fantoche é executado em seu cluster de máquinas, mas também pode ser usado para outros problemas semelhantes de orquestração.
fonte