Estoy usando func para realizar comandos paralelos en nuestros servidores.
El otro día, tuvimos un problema cuando un reinicio del servicio de puppet
vía func
hizo que todos nuestros servidores golpearan puppetmaster
al mismo tiempo.
Mi pregunta: ¿Cómo puedo ejecutar el mismo comando exacto en un conjunto de servidores mientras agrego un retraso antes de que se ejecute en los servidores individuales?
P.ej: random_delay && service puppet restart
Estoy interesado en la random_delay
parte del comando.
linux
command-line-interface
puppet
Belmin Fernandez
fuente
fuente
sleep $((RANDOM % MAXWAIT))
Es la forma correcta. Editaré la respuesta como tal.fqdn_rand
.dash
echo sleep $((RANDOM % 900))
devolucionessleep 0
. Esto significa que no es seguro usarlo en#!/bin/sh
scripts o lugares como crontab. (El problema parece ser quedash
no comprende$RANDOM
)Me gusta bastante la solución innovadora, pero menos que ideal de S19N. Solo digo que es menos que ideal, ya que todavía es en gran medida no determinista cuándo sucederán cosas realmente. Prefiero poder garantizar cuándo sucederán cosas y qué sucederá cuando suceda.
La orquestación de marionetas es en realidad un problema difícil .
Una de las soluciones de "mejores prácticas" es usar MCollective, que no solo le permitirá configurar cuando Puppet se ejecuta en su grupo de máquinas, sino que también puede usarlo para otros problemas de orquestación similares.
fuente