Estoy usando func para realizar comandos paralelos en nuestros servidores.
El otro día, tuvimos un problema cuando un reinicio del servicio de puppetvía funchizo que todos nuestros servidores golpearan puppetmasteral 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_delayparte 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.dashecho sleep $((RANDOM % 900))devolucionessleep 0. Esto significa que no es seguro usarlo en#!/bin/shscripts o lugares como crontab. (El problema parece ser quedashno 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