summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/check-puppetd.sh1
-rw-r--r--files/cron.d/puppetd3
-rw-r--r--files/cron.d/puppetmaster3
-rw-r--r--manifests/puppetd.pp7
-rw-r--r--manifests/puppetmasterd.pp8
5 files changed, 22 insertions, 0 deletions
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",