Per impostazione predefinita, i client Puppet richiedono aggiornamenti ogni 30 minuti. Vorrei cambiare questo intervallo. Qual è il modo più conveniente per farlo?
Per impostazione predefinita, i client Puppet richiedono aggiornamenti ogni 30 minuti. Vorrei cambiare questo intervallo. Qual è il modo più conveniente per farlo?
Risposte:
Sui client, modifica /etc/puppet/puppet.conf e imposta quanto segue (aggiungi una nuova riga se non è già presente) nella sezione [principale] del file:
runinterval=xxx
dove xxx è l'intervallo di polling desiderato in secondi.
Con quale frequenza l'agente fantoccio applica il catalogo. Nota che un intervallo di esecuzione pari a 0 significa "esegui continuamente" anziché "non eseguire mai". Se vuoi che l'agente fantoccio non venga mai eseguito, dovresti avviarlo con l'opzione --no-client. Questa impostazione può essere un intervallo di tempo in secondi (30 o 30 secondi), minuti (30 minuti), ore (6 ore), giorni (2 giorni) o anni (5 anni).
Default: 30m
Se desideri evitare di utilizzare runinterval, l'impostazione di un cron potrebbe funzionare bene. Questo potrebbe essere particolarmente utile se hai molti server che vuoi impedire di colpire contemporaneamente il tuo burattinaio. Ho usato il burattinaio per estrarre il file e aggiornare cron, niente da fare dal lato client (ovviamente).
Ecco cosa sto usando (nota che lo sto eseguendo ogni ora ma potresti semplicemente fare riferimento in cron.d, non ho creato questo script e purtroppo non so a chi accreditare ):
#!/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