Domyślnie klienci Puppet proszą o aktualizacje co 30 minut. Chciałbym zmienić ten interwał. Jaki jest najwygodniejszy sposób to zrobić?
Domyślnie klienci Puppet proszą o aktualizacje co 30 minut. Chciałbym zmienić ten interwał. Jaki jest najwygodniejszy sposób to zrobić?
Odpowiedzi:
Na klientach, edytuj /etc/puppet/puppet.conf i ustaw następujące (dodaj nowy wiersz, jeśli jeszcze go nie ma) w sekcji [main] pliku:
runinterval=xxx
gdzie xxx to żądany interwał sondowania w sekundach.
Jak często agent marionetkowy stosuje katalog. Zauważ, że wartość runinterval równa 0 oznacza „działaj w sposób ciągły” zamiast „nigdy nie uruchamiaj”. Jeśli chcesz, aby agent marionetek nigdy nie działał, powinieneś uruchomić go z opcją --no-client. To ustawienie może być przedziałem czasu w sekundach (30 lub 30s), minutach (30m), godzinach (6h), dniach (2d) lub latach (5y).
Default: 30m
Jeśli chcesz uniknąć używania runinterval, skonfigurowanie crona może działać dobrze. Może to być szczególnie przydatne, jeśli masz wiele serwerów, które chcesz powstrzymać przed uderzeniem twojego puppetmastera w tym samym czasie. Użyłem puppetmastera do wypchnięcia pliku i aktualizacji crona, oczywiście po stronie klienta.
Oto, czego używam (zauważ, że uruchamiam go co godzinę, ale możesz po prostu odwoływać się do niego w cron.d, nie utworzyłem tego skryptu i niestety nie wiem, komu przypisać ):
#!/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