Par défaut, les clients Puppet demandent des mises à jour toutes les 30 minutes. Je voudrais changer cet intervalle. Quelle est la manière la plus pratique de procéder?
Par défaut, les clients Puppet demandent des mises à jour toutes les 30 minutes. Je voudrais changer cet intervalle. Quelle est la manière la plus pratique de procéder?
Réponses:
Sur le (s) client (s), éditez /etc/puppet/puppet.conf et définissez ce qui suit (ajoutez une nouvelle ligne si elle n'est pas déjà présente) dans la section [principale] du fichier:
runinterval=xxx
où xxx est l'intervalle d'interrogation souhaité en secondes.
Fréquence à laquelle l'agent fantoche applique le catalogue. Notez qu'un intervalle d'exécution de 0 signifie «exécuté en continu» plutôt que «jamais exécuté». Si vous voulez que l'agent de marionnettes ne s'exécute jamais, vous devez le démarrer avec l'option --no-client. Ce paramètre peut être un intervalle de temps en secondes (30 ou 30s), minutes (30m), heures (6h), jours (2d) ou années (5y).
Default: 30m
Si vous souhaitez éviter d'utiliser runinterval, la configuration d'un cron pourrait bien fonctionner. Cela pourrait être particulièrement utile si vous avez de nombreux serveurs que vous souhaitez empêcher de frapper votre marionnettiste en même temps. J'ai utilisé le marionnettiste pour extraire le fichier et mettre à jour cron, rien à faire du côté client (évidemment).
Voici ce que j'utilise (notez que je le lance toutes les heures mais vous pouvez simplement le référencer dans cron.d, je n'ai pas créé ce script et malheureusement je ne sais pas qui créditer ):
#!/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