Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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
up vote 23 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:


where xxx is your desired polling interval in seconds.


How often puppet agent applies the catalog. Note that a runinterval of 0 means “run continuously” rather than “never run.” If you want puppet agent to never run, you should start it with the --no-client option. This setting can be a time interval in seconds (30 or 30s), minutes (30m), hours (6h), days (2d), or years (5y).

Default: 30m
share|improve this answer
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 Lehmijoki Jan 10 '11 at 6:56

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):


# 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/" ]; then
  echo "Puppet is already running or has been disabled.  Remove the lock file /var/run/puppet/ or run
'puppetd --enable'."

# 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
You can achieve the same random sleep using the splay and splaylimit settings in puppet.conf when running as a service. – czervik Mar 13 '13 at 15:47

Your Answer


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.