Puppet Class: masterless::puppet::config

Defined in:
manifests/puppet/config.pp

Summary

A short summary of the purpose of this class

Overview

A description of what this class does

Examples:

include masterless::puppet::config

Parameters:

  • ensure (Enum['present', 'absent']) (defaults to: 'present')
  • user (String[1]) (defaults to: $masterless::user)
  • home (String[1]) (defaults to: $masterless::home)
  • group (String[1]) (defaults to: $masterless::group)
  • plist (String[1]) (defaults to: $masterless::plist)
  • start_interval (Integer) (defaults to: 3600)


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'manifests/puppet/config.pp', line 7

class masterless::puppet::config (
  Enum['present', 'absent'] $ensure = 'present',
  String[1] $user = $masterless::user,
  String[1] $home = $masterless::home,
  String[1] $group = $masterless::group,
  String[1] $plist = $masterless::plist,
  Integer $start_interval = 3600,
) {

  $data = {
    'Label'                => "com.github.puppet-masterless-${user}",
    'EnvironmentVariables' => {
      'PATH' => '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin',
      'LANG' => 'en_US.UTF-8'
    },
    'Program'              => "${home}/.puppet-masterless/run.sh",
    'StartInterval'        => $start_interval,
    'RunAtLoad'            => true,
  }

  file { $plist:
    ensure  => $ensure,
    content => hash2plist($data),
  }

  file { "${home}/.puppet-masterless":
    ensure => directory,
    owner  => $user,
    group  => $group,
  }

  file { "${home}/.puppet-masterless/run.sh":
    ensure  => $ensure,
    owner   => $user,
    group   => $group,
    mode    => '0755',
    content => template('masterless/run.sh.erb'),
    # source  => 'puppet:///modules/masterless/run.sh', # Change this to a template
    notify  => Exec['reload_job'],
  }

  $userdirs = [
    "${facts['puppet_user_home']}/.puppetlabs/",
    "${facts['puppet_user_home']}/.puppetlabs/etc/",
    "${facts['puppet_user_home']}/.puppetlabs/etc/code/",
    "${facts['puppet_user_home']}/.puppetlabs/etc/code/environments",
  ]

  if $facts['puppet_user'] != 'root' {
    file { $userdirs:
      ensure => directory,
      owner  => $user,
      group  => $group,
    }
  }

}