Come modificare l'intervallo di polling del Puppet Master?


16

Per impostazione predefinita, i client Puppet richiedono aggiornamenti ogni 30 minuti. Vorrei cambiare questo intervallo. Qual è il modo più conveniente per farlo?

Risposte:


30

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.


Runinterval

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

1
Un tempo la modifica dell'intervallo di esecuzione era scoraggiata a causa di problemi di perdita di memoria. Non so se questa preoccupazione sia ancora valida.
Scott Pack

Pacchetti +1 - buon punto. Non ho riscontrato questo problema dall'aggiornamento a 2.6 su Centos 5.5 (64 bit)
Patrick R,

Puoi anche avviare il client Puppet con il parametro --runinterval = x
Lauri Lehmijoki

6

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

6
Puoi ottenere lo stesso sonno casuale usando le impostazioni splay e splaylimit in puppet.conf durante l'esecuzione come servizio. docs.puppetlabs.com/references/latest/configuration.html#splay
czervik
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.