From 1ce6003bf9710c1b75885a65b48fe8d638398e87 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 19 Feb 2011 19:09:19 -0200 Subject: Restart puppet and puppetmaster from time to time --- files/check-puppetd.sh | 1 + files/cron.d/puppetd | 3 +++ files/cron.d/puppetmaster | 3 +++ manifests/puppetd.pp | 7 +++++++ manifests/puppetmasterd.pp | 8 ++++++++ 5 files changed, 22 insertions(+) create mode 100644 files/cron.d/puppetd create mode 100644 files/cron.d/puppetmaster diff --git a/files/check-puppetd.sh b/files/check-puppetd.sh index c886ea3..10d6bc1 100644 --- a/files/check-puppetd.sh +++ b/files/check-puppetd.sh @@ -11,6 +11,7 @@ if [ ! -f "$PID" ]; then else running="$(ps $(cat $PID) &> /dev/null)" if [ "$?" != "0" ]; then + sleep `echo $RANDOM/2000*60 | bc` $INIT start fi fi diff --git a/files/cron.d/puppetd b/files/cron.d/puppetd new file mode 100644 index 0000000..5a45875 --- /dev/null +++ b/files/cron.d/puppetd @@ -0,0 +1,3 @@ +# restart puppet once in a while and randomly delay the restart between 0 and 32 minutes -> splay puppetmaster hammering +0 22 * * */2 root sleep `echo $RANDOM/1000*60 | bc` && /etc/init.d/puppet restart > /dev/null + diff --git a/files/cron.d/puppetmaster b/files/cron.d/puppetmaster new file mode 100644 index 0000000..4ea0b66 --- /dev/null +++ b/files/cron.d/puppetmaster @@ -0,0 +1,3 @@ +# we restart puppetmaster twice a day to avoid memory problems +58 11 * * * root /etc/init.d/puppetmaster restart > /dev/null + diff --git a/manifests/puppetd.pp b/manifests/puppetd.pp index c098142..66edf43 100644 --- a/manifests/puppetd.pp +++ b/manifests/puppetd.pp @@ -74,4 +74,11 @@ class puppetd inherits puppet { require => File["/usr/local/sbin/check-puppetd.sh"], ensure => present, } + + file { "/etc/cron.d/puppetd": + source => "puppet://$server/modules/puppet/cron.d/puppetd", + owner => root, + group => root, + mode => 0644; + } } diff --git a/manifests/puppetmasterd.pp b/manifests/puppetmasterd.pp index d574c8d..67ec4b4 100644 --- a/manifests/puppetmasterd.pp +++ b/manifests/puppetmasterd.pp @@ -106,6 +106,14 @@ class puppetmasterd { ensure => absent, } + # restart the master from time to time to avoid memory problems + file { "/etc/cron.d/puppetmaster": + source => "puppet://$server/modules/puppet/cron.d/puppetmaster", + owner => root, + group => root, + mode => 0644; + } + # and the script to the cron-job above file { "/usr/local/sbin/update-puppet-conf.sh": source => "puppet://$server/modules/puppet/update-puppet-conf.sh", -- cgit v1.2.3