summaryrefslogtreecommitdiff
path: root/manifests/init.pp
blob: 959fa614817a35075128a3624dd9e26a9cf93dcd (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
107
108
109
110
111
112
113
114
115
116
# 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}
    }
}

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],
    }
}

define puppet::config($source = ''){

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

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

define puppet::masterconfig(
    $puppetsource = '',
    $fileserversource = ''
){


    $real_puppetsource = $puppetsource ? {
        '' => 'puppet/master/puppet.conf',
        default => $source,
    }

    $real_fileserversource = $fileserversource ? {
        '' => 'puppet/master/fileserver.conf',
        default => $source,
    }

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