Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

By default, Puppet clients ask for updates every 30 minutes. I would like to change this interval. What is the most convenient way to do it?

share|improve this question
add comment

2 Answers

up vote 14 down vote accepted

On the client(s), edit /etc/puppet/puppet.conf and set the following (add a new line if it's not already present) in the [main] section of the file:

runinterval=xxx

where xxx is your desired polling interval in seconds.

share|improve this answer
1  
At one time changing the runinterval was discouraged because of memory leakage problems. I don't know if that concern still applies. –  Scott Pack Jan 5 '11 at 16:18
    
+1 packs - good point. I haven't seen that issue since upgrading to 2.6 on Centos 5.5 (64bit) –  Patrick R Jan 6 '11 at 14:55
    
+1 @Mike Scott. –  Patrick R Jan 6 '11 at 16:46
    
You can also start the Puppet client with the parameter --runinterval=x –  Lauri L Jan 10 '11 at 6:56
add comment

If you would like to avoid using runinterval, setting up a cron could work well. This could be especially useful if you have many servers that you want to keep from hitting your puppetmaster at the same time. I used the puppetmaster to push out the file and update cron, nothing to do from the client side (obviously).

Here's what I'm using (note that I'm running it hourly but you could just reference it in cron.d, I did not create this script and unfortunetly do not know who to credit):

#!/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
share|improve this answer
2  
You can achieve the same random sleep using the splay and splaylimit settings in puppet.conf when running as a service. docs.puppetlabs.com/references/latest/configuration.html#splay –  czervik Mar 13 '13 at 15:47
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.