| Index: modules/adblockplus/manifests/puppet.pp | 
| =================================================================== | 
| new file mode 100644 | 
| --- /dev/null | 
| +++ b/modules/adblockplus/manifests/puppet.pp | 
| @@ -0,0 +1,49 @@ | 
| +# == Class: adblockplus::puppet | 
| +# | 
| +# Manage Puppet (https://github.com/puppetlabs/puppet) agent configuration. | 
| +# | 
| +# === Parameters: | 
| +# | 
| +# [*package*] | 
| +#   Custom parameters for the implicit Package['puppet'] resource. | 
| +# | 
| +# [*service*] | 
| +#   Custom parameters for the Service['puppet'] resource implicitly defined | 
| +#   if Package['puppet'] is ensured to be neither "absent" nor "purged". | 
| +# | 
| +# === Examples: | 
| +# | 
| +#   class {'adblockplus::puppet': | 
| +#     package => { | 
| +#       'ensure' => 'present', | 
| +#       'name' => 'puppet', | 
| +#     }, | 
| +#     service => { | 
| +#       'ensure' => 'stopped', | 
| +#       'name' => 'puppet', | 
| +#     }, | 
| +#   } | 
| +# | 
| +class adblockplus::puppet ( | 
| +  $package = hiera('adblockplus::puppet::package', {}), | 
| +  $service = hiera('adblockplus::puppet::service', {}), | 
| +) { | 
| + | 
| +  # https://forge.puppet.com/puppetlabs/stdlib | 
| +  include stdlib | 
| + | 
| +  # https://forge.puppet.com/puppetlabs/stdlib#ensure_resource | 
| +  ensure_resource('package', 'puppet', $package) | 
| + | 
| +  # https://forge.puppet.com/puppetlabs/stdlib#getparam | 
| +  if getparam(Package['puppet'], 'ensure') !~ /^(absent|purged)$/ { | 
| + | 
| +    ensure_resource('service', 'puppet', merge({ | 
| +      'ensure' => 'stopped', | 
| +      'hasrestart' => true, | 
| +      'hasstatus' => true, | 
| +    }, $service)) | 
| + | 
| +    Service['puppet'] <- Package['puppet'] | 
| +  } | 
| +} | 
|  |