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

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

默认情况下,Puppet 客户端每 30 分钟请求一次更新。我想更改此间隔。最方便的方法是什么?

答案1

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

runinterval=xxx

其中 xxx 是您想要的轮询间隔(以秒为单位)。


跑步间隔

puppet 代理应用目录的频率。请注意,runinterval 为 0 表示“连续运行”而不是“永不运行”。如果您希望 puppet 代理永不运行,则应使用 --no-client 选项启动它。此设置可以是以秒(30 或 30s)、分钟(30m)、小时(6h)、天(2d)或年(5y)为单位的时间间隔。

Default: 30m

答案2

如果您想避免使用 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

相关内容