Как изменить интервал опроса мастера Puppet?


16

По умолчанию клиенты Puppet запрашивают обновления каждые 30 минут. Я хотел бы изменить этот интервал. Какой самый удобный способ сделать это?

Ответы:


30

На клиенте (ах) отредактируйте файл /etc/puppet/puppet.conf и установите следующее (добавьте новую строку, если ее еще нет) в разделе [main] файла:

runinterval=xxx

где ххх - желаемый интервал опроса в секундах.


Runinterval

Как часто кукольный агент применяет каталог. Обратите внимание, что значение runinterval, равное 0, означает «работать непрерывно», а не «никогда не запускать». Если вы хотите, чтобы puppet agent никогда не запускался, вы должны запустить его с параметром --no-client. Этот параметр может быть временным интервалом в секундах (30 или 30 с), минутах (30 м), часах (6 ч), днях (2 д) или годах (5 лет).

Default: 30m

1
В свое время изменение интервала запуска не поощрялось из-за проблем с утечкой памяти. Я не знаю, распространяется ли это беспокойство.
Скотт Пак

+1 пачка - хороший момент. Я не видел этой проблемы с момента обновления до 2.6 на Centos 5.5 (64 бита)
Патрик R

Вы также можете запустить Puppet-клиент с параметром --runinterval = x
Lauri Lehmijoki

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
Вы можете достичь того же случайного сна, используя настройки splay и splaylimit в puppet.conf при запуске в качестве службы. docs.puppetlabs.com/references/latest/configuration.html#splay
czervik
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.