ตามค่าเริ่มต้นลูกค้าหุ่นกระบอกจะขอการปรับปรุงทุก ๆ 30 นาที ฉันต้องการเปลี่ยนช่วงเวลานี้ วิธีที่สะดวกที่สุดในการทำคืออะไร?
ตามค่าเริ่มต้นลูกค้าหุ่นกระบอกจะขอการปรับปรุงทุก ๆ 30 นาที ฉันต้องการเปลี่ยนช่วงเวลานี้ วิธีที่สะดวกที่สุดในการทำคืออะไร?
คำตอบ:
บนไคลเอนต์ให้แก้ไข /etc/puppet/puppet.conf และตั้งค่าต่อไปนี้ (เพิ่มบรรทัดใหม่หากยังไม่ปรากฏ) ในส่วน [main] ของไฟล์:
runinterval=xxx
โดยที่ xxx คือช่วงเวลาการโพลที่คุณต้องการในไม่กี่วินาที
ตัวแทนหุ่นเชิดใช้แคตตาล็อกบ่อยเพียงใด โปรดทราบว่า Runinterval ที่เป็น 0 หมายถึง“ รันอย่างต่อเนื่อง” มากกว่า“ ไม่เคยรัน” หากคุณต้องการให้ตัวแทนหุ่นเชิดไม่เคยวิ่งคุณควรเริ่มด้วยตัวเลือก --no-client การตั้งค่านี้อาจเป็นช่วงเวลาเป็นวินาที (30 หรือ 30s), นาที (30m), ชั่วโมง (6h), วัน (2d) หรือปี (5y)
Default: 30m
หากคุณต้องการหลีกเลี่ยงการใช้ 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