diff options
Diffstat (limited to 'manifests/master')
-rw-r--r-- | manifests/master/update.pp | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/manifests/master/update.pp b/manifests/master/update.pp index 4d6925c..fc30166 100644 --- a/manifests/master/update.pp +++ b/manifests/master/update.pp @@ -1,14 +1,7 @@ -class puppet::master::update { - # cron rule to update puppet config repository every 5 minutes - cron { "puppet-update": - command => "/usr/local/sbin/update-puppet-conf.sh > /dev/null 2>&1", - user => puppet, - minute => "*/5", - ensure => present, - require => [ File["/usr/local/sbin/update-puppet-conf.sh"], User["puppet"] ], - } - - # and the script to the cron-job above +class puppet::master::update( + $method = hiera('puppet::master::update::method', 'cron') +) { + # puppet update script file { "/usr/local/sbin/update-puppet-conf.sh": source => "puppet:///modules/puppet/update-puppet-conf.sh", owner => "puppet", @@ -17,12 +10,34 @@ class puppet::master::update { ensure => present, } - # TODO: use a post-update hook instead of the cronjob + # cron rule to update puppet config repository every 5 minutes + cron { "puppet-update": + command => "/usr/local/sbin/update-puppet-conf.sh > /dev/null 2>&1", + user => puppet, + minute => "*/5", + ensure => $method ? { + 'cron' => present, + default => absent, + }, + require => [ File["/usr/local/sbin/update-puppet-conf.sh"], User["puppet"] ], + } + + # use a post-update hook file { '/var/git/repositories/puppet.git/hooks/post-update': - ensure => absent, - mode => 0755, - owner => gitolite, + mode => 4750, + owner => puppet, group => gitolite, + ensure => $method ? { + 'cron' => absent, + default => present, + }, source => "puppet:///modules/puppet/post-update.sh", } + + # needed by the post-update hook above + if !defined(Package['procmail']) { + package { 'procmail': + ensure => present, + } + } } |