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?
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?
Respuestas:
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.
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
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