回答:
クライアントで、/ etc / puppet / puppet.confを編集し、ファイルの[main]セクションに以下を設定します(まだない場合は新しい行を追加します)。
runinterval=xxx
ここで、xxxは秒単位の希望するポーリング間隔です。
パペットエージェントがカタログを適用する頻度。runintervalが0の場合、「実行しない」ではなく「継続的に実行する」ことを意味します。puppetエージェントを実行しない場合は、-no-clientオプションを使用して起動する必要があります。この設定は、秒(30または30秒)、分(30m)、時間(6h)、日(2d)、または年(5y)の時間間隔にすることができます。
Default: 30m
runintervalの使用を避けたい場合は、cronを設定するとうまくいく可能性があります。これは、パペットマスターに同時にヒットしないようにするサーバーが多数ある場合に特に便利です。私はpuppetmasterを使用してファイルをプッシュし、cronを更新しましたが、クライアント側からは何もしません(明らかに)。
私が使用しているものは次のとおりです(1時間ごとに実行していますが、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