如何更改Puppet Master的轮询间隔?


Answers:


30

在客户端上,编辑/etc/puppet/puppet.conf并在文件的[main]部分中设置以下内容(如果尚不存在,则添加新行):

runinterval=xxx

其中xxx是所需的轮询间隔(以秒为单位)。


运行间隔

人偶代理多久应用一次目录。请注意,runinterval为0表示“连续运行”而不是“从不运行”。如果希望木偶代理程序永不运行,则应使用--no-client选项启动它。此设置的时间间隔可以是秒(30或30s),分钟(30m),小时(6h),天(2d)或年(5y)。

Default: 30m

1
由于内存泄漏问题,一次不建议更改运行间隔。我不知道这种担忧是否仍然适用。
Scott Pack

+1包-好点。自从在Centos 5.5(64位)上升级到2.6以来,我还没有看到这个问题
Patrick R

您也可以使用--runinterval = x参数启动Puppet客户端
Lauri Lehmijoki 2011年

6

如果您想避免使用runinterval,则设置cron可能会很好。如果要防止同时攻击多个puppetmaster,这可能特别有用。我使用了puppetmaster来推出文件并更新cron,这与客户端无关(显然)。

这是我正在使用的(请注意,我每小时运行一次,但是您可以在cron.d中引用它,我没有创建此脚本,而且很遗憾,不知道该归功于谁):

#!/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
当作为服务运行时,可以使用puppet.conf中的splay和splaylimit设置实现相同的随机睡眠。docs.puppetlabs.com/references/latest/configuration.html#splay
czervik 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.