]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/commitdiff
Add cron-puppet module
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 8 Aug 2016 15:54:33 +0000 (17:54 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 8 Aug 2016 15:54:33 +0000 (17:54 +0200)
manifests/site.pp [new file with mode: 0644]
modules/cron-puppet/files/post-merge [new file with mode: 0644]
modules/cron-puppet/manifests/init.pp [new file with mode: 0644]

diff --git a/manifests/site.pp b/manifests/site.pp
new file mode 100644 (file)
index 0000000..1464586
--- /dev/null
@@ -0,0 +1,3 @@
+node default {
+    include cron-puppet
+}
diff --git a/modules/cron-puppet/files/post-merge b/modules/cron-puppet/files/post-merge
new file mode 100644 (file)
index 0000000..b8dc266
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash -e
+## Run Puppet locally using puppet apply
+/usr/bin/puppet apply /etc/puppetlabs/puppet/manifests/site.pp
+
+## Log status of the Puppet run
+if [ $? -eq 0 ]
+then
+    /usr/bin/logger -i "Puppet has run successfully" -t "puppet-run"
+    exit 0
+else
+    /usr/bin/logger -i "Puppet has ran into an error, please run Puppet manually" -t "puppet-run"
+    exit 1
+fi
+
diff --git a/modules/cron-puppet/manifests/init.pp b/modules/cron-puppet/manifests/init.pp
new file mode 100644 (file)
index 0000000..4ce0be4
--- /dev/null
@@ -0,0 +1,17 @@
+class cron-puppet {
+    file { 'post-hook':
+        ensure  => file,
+        path    => '/etc/puppetlabs/puppet/.git/hooks/post-merge',
+        source  => 'puppet:///modules/cron-puppet/post-merge',
+        mode    => 0755,
+        owner   => root,
+        group   => root,
+    }
+    cron { 'puppet-apply':
+        ensure  => present,
+        command => "cd /etc/puppetlabs/puppet ; /usr/bin/git pull",
+        user    => root,
+        minute  => '*/30',
+        require => File['post-hook'],
+    }
+}