summaryrefslogtreecommitdiff
path: root/manifests/init.pp
blob: a3bfb2ff8703fa3567d430d0b8d07d036885622a (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# modules/puppet/manifests/init.pp - manage puppet stuff
# Copyright (C) 2007 admin@immerda.ch
#

# modules_dir { "puppet": }

class puppet {
    case $kernel {
        linux: { include puppet::linux}
        openbsd: { include puppet::openbsd}
    }

    $real_puppet_conf_source = $puppet_conf_source ? {
        '' => [ "puppet://$server/dist/puppet/client/puppet.conf.$operatingsystem",
                "puppet://$server/dist/puppet/client/puppet.conf", 
                "puppet://$server/puppet/client/puppet.conf.$operatingsystem",
                "puppet://$server/puppet/client/puppet.conf" ],
        default => "puppet://$server/$source",
    }

    file { 'puppet_config':
        path => '/etc/puppet/puppet.conf',
        owner => root,
        group => 0,
        mode => 600,
        source => $real_puppet_conf_source,
        notify => Service[puppet],
    }

}

class puppet::linux {
    package{'puppet':
        name => 'puppet',
        category => $operatingsystem ? {
            gentoo => 'app-admin',
            default => '',
        },
        ensure => present,
    }

    package{'facter':
        name => 'facter',
        category => $operatingsystem ? {
            gentoo => 'dev-ruby',
            default => '',
        },
        ensure => present,
    }

    service{'puppet':
        ensure => running,
        require => Package[puppet],
        hasstatus => true,
        hasrestart => true,
    }

    file{'/etc/cron.d/puppetd':
        owner => root,
        group => 0,
        mode => 0644,
        source => [ "puppet://$server/puppet/conf.d/puppetd.$operatingsystem",
                    "puppet://$server/puppet/conf.d/puppetd"
        ],
    }
}
class puppet::openbsd {
    service{'puppet':
        provider => base,
        pattern => puppetd,
        ensure => running,
    }
}

class puppetmaster inherits puppet {
    service{'puppetmaster':
        ensure => running,
        require => Package[puppet],
    }

    $real_puppetmaster_conf_source = $puppet_conf_source ? {
        '' => [ "puppet://$server/dist/puppet/master/puppet.conf",
                "puppet://$server/puppet/master/puppet.conf" ],
        default => "puppet://$server/$source",
    }

    $real_puppet_fileserver_source = $puppet_fileserver_source ? {
        '' => [ "puppet://$server/dist/puppet/master/fileserver.conf",
                "puppet://$server//puppet/master/fileserver.conf" ],
        default => "puppet://$server/$puppet_fileserver_source"
    }

    File[puppet_config]{
        source => $real_puppetmaster_conf_source,
        notify => [Service[puppet],Service[puppetmaster] ],
    }

    file { 'fileserver_config':
        path => '/etc/puppet/fileserver.conf',
        owner => root,
        group => 0,
        mode => 600,
        source => $real_puppet_fileserver_source,
        notify => [Service[puppet],Service[puppetmaster] ],
    }
}