aboutsummaryrefslogtreecommitdiffstats
path: root/modules/puppet/manifests/init.pp
blob: 8eb7a184361cac775583b9c36392e2d351086106 (plain)
1
2
3
4
5
6
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
64
65
66
67
68

class puppet {
    class client {
        package { puppet: }
    
        file { "/etc/puppet/puppet.conf":
            content => template("puppet/puppet.conf"),
            require => Package[puppet]
        }

        cron { "puppet":
            command => "/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog > /dev/null 2>&1",
            user => "root",
            minute => fqdn_rand( 60 ),
            ensure => present,
        }

        service { puppet:
            enable => false,
            hasstatus => true,
        }
    }

    class master {
        include puppet::client

        # for stored config
        $rails_package = $lsbdistid ? {
            Mageia => "ruby-rails",
            MandrivaLinux => "rails"
        }

        package { ["ruby-sqlite3", "puppet-server", $rails_package]: }

        service { puppetmaster:
            ensure => running,
            path => "/etc/init.d/puppetmaster",
            subscribe => [ Package[puppet-server], File["/etc/puppet/puppet.conf"]]
        }

        file { "/etc/puppet/extdata":
            ensure => directory,
            owner => puppet,
            group => puppet,
            mode => 700,
            recurse => true
        }

        file { '/etc/puppet/tagmail.conf':
            content => template("puppet/tagmail.conf"),
        }

        tidy { "/var/lib/puppet/reports":
            age     => "4w",
            matches => "*.yaml",
            recurse => true,
            type    => "mtime",
        }

        file { "/etc/puppet/autosign.conf":
            ensure =>  $environment ? {
                        'test' => 'present',
                        default =>  'absent',
            },
            content => '*',
        }
    }
}