Puppetマスターのポーリング間隔を変更するにはどうすればよいですか?


16

デフォルトでは、Puppetクライアントは30分ごとに更新を要求します。この間隔を変更したいと思います。最も便利な方法は何ですか?

回答:


30

クライアントで、/ etc / puppet / puppet.confを編集し、ファイルの[main]セクションに以下を設定します(まだない場合は新しい行を追加します)。

runinterval=xxx

ここで、xxxは秒単位の希望するポーリング間隔です。


実行間隔

パペットエージェントがカタログを適用する頻度。runintervalが0の場合、「実行しない」ではなく「継続的に実行する」ことを意味します。puppetエージェントを実行しない場合は、-no-clientオプションを使用して起動する必要があります。この設定は、秒(30または30秒)、分(30m)、時間(6h)、日(2d)、または年(5y)の時間間隔にすることができます。

Default: 30m

1
かつては、メモリリークの問題があるため、runintervalの変更は推奨されていませんでした。その懸念がまだ当てはまるかどうかはわかりません。
スコットパック

+1パック-良い点。私はCentOSに5.5(64ビット)に2.6へのアップグレード以来、その問題を見ていない
パトリック・R

パラメーター--runinterval = x
Lauri Lehmijoki

6

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

6
サービスとして実行している場合、puppet.confのsplayおよびsplaylimit設定を使用して、同じランダムスリープを実現できます。docs.puppetlabs.com/references/latest/configuration.html#splay
czervik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.