¿Cómo cambiar el intervalo de sondeo del Puppet master?

16

Por defecto, los clientes de Puppet solicitan actualizaciones cada 30 minutos. Me gustaría cambiar este intervalo. ¿Cuál es la forma más conveniente de hacerlo?

Lauri Lehmijoki
fuente

Respuestas:

30

En los clientes, edite /etc/puppet/puppet.conf y configure lo siguiente (agregue una nueva línea si aún no está presente) en la sección [principal] del archivo:

runinterval=xxx

donde xxx es el intervalo de sondeo deseado en segundos.


Runinterval

Con qué frecuencia el agente títere aplica el catálogo. Tenga en cuenta que un intervalo de ejecución de 0 significa "ejecutar continuamente" en lugar de "nunca ejecutar". Si desea que el agente títere nunca se ejecute, debe comenzar con la opción --no-client. Esta configuración puede ser un intervalo de tiempo en segundos (30 o 30 s), minutos (30 m), horas (6 h), días (2 d) o años (5 años).

Default: 30m
Mike Scott
fuente
1
Hubo un tiempo en que se desaconsejaba cambiar el intervalo de ejecución debido a problemas de pérdida de memoria. No sé si esa preocupación aún se aplica.
Scott Pack
+1 paquetes - buen punto. No he visto ese problema desde que actualicé a 2.6 en Centos 5.5 (64 bits)
Patrick R
También puede iniciar el cliente Puppet con el parámetro --runinterval = x
Lauri Lehmijoki
6

Si desea evitar el uso de runinterval, configurar un cron podría funcionar bien. Esto podría ser especialmente útil si tienes muchos servidores que quieres evitar que golpeen a tu puppetmaster al mismo tiempo. Usé el puppetmaster para sacar el archivo y actualizar cron, nada que hacer desde el lado del cliente (obviamente).

Esto es lo que estoy usando (tenga en cuenta que lo estoy ejecutando cada hora, pero podría hacer referencia a él en cron.d, no creé este script y desafortunadamente no sé a quién acreditar ):

#!/bin/bash
#/etc/cron.hourly/puppetRun.sh

# This file managed by Puppet.

# Leave this script in cron.  To disable Puppet, run 'puppetd --disable'
# to temporarily suspend the running of Puppet for testing purposes.

PROG=`basename $0 .sh`
exec > /usr/local/logs/${PROG}.last.trace 2>&1
set -x

if [ -e "/var/run/puppet/puppetd.pid" ]; then
  echo "Puppet is already running or has been disabled.  Remove the lock file /var/run/puppet/puppetd.pid or run
'puppetd --enable'."
  exit
fi

# Randomly sleep so all Puppet clients don't hit the Puppet Master at once.
WAIT=$((RANDOM % 60 * 60))
echo "Sleeping $WAIT seconds..."
/bin/sleep $WAIT


/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog > /dev/null 2>&1
Patrick R
fuente
66
Puede lograr el mismo sueño aleatorio utilizando la configuración splay y splaylimit en puppet.conf cuando se ejecuta como un servicio. docs.puppetlabs.com/references/latest/configuration.html#splay
czervik