class puppet::master::update( $ensure = present, $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", group => "puppet", mode => 0750, ensure => present, } # 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' => $ensure, 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': mode => 0750, owner => gitolite, group => gitolite, ensure => $method ? { 'cron' => $ensure, default => present, }, source => "puppet:///modules/puppet/post-update.sh", } # needed by the post-update hook above if !defined(Package['procmail']) { package { 'procmail': ensure => present, } } }