]> git.donarmstrong.com Git - dsa-puppet.git/blob - manifests/site.pp
Yay, puppet limitations
[dsa-puppet.git] / manifests / site.pp
1 Package {
2     require => File["/etc/apt/apt.conf.d/local-recommends"]
3 }
4
5 File {
6     owner   => root,
7     group   => root,
8     mode    => 444,
9     ensure  => file,
10 }
11
12 Exec {
13     path => "/usr/bin:/usr/sbin:/bin:/sbin"
14 }
15
16 node default {
17     $localinfo = yamlinfo('*', "/etc/puppet/modules/debian-org/misc/local.yaml")
18     $nodeinfo  = nodeinfo($fqdn, "/etc/puppet/modules/debian-org/misc/local.yaml")
19     $hosterinfo = whohosts($nodeinfo, "/etc/puppet/modules/debian-org/misc/hoster.yaml")
20     $allnodeinfo = allnodeinfo("sshRSAHostKey ipHostNumber", "purpose")
21     $mxinfo    = allnodeinfo("mXRecord")
22     notice("hoster for ${fqdn} is ${hosterinfo}")
23
24     include munin-node
25     include syslog-ng
26     include sudo
27     include ssh
28     include debian-org
29     include monit
30     include apt-keys
31     include ntp
32     include ssl
33
34     include motd
35
36     case $hostname {
37         finzi,fano,fasch,field:    { include kfreebsd }
38     }
39
40     case $smartarraycontroller {
41         "true":    { include debian-proliant }
42     }
43     case $kvmdomain {
44         "true": {
45             package { acpid: ensure => installed }
46             case getfromhash($nodeinfo, 'squeeze') {
47                 true:  { package { acpi-support-base: ensure => installed } }
48             }
49         }
50     }
51     case $mptraid {
52         "true":    { include "raidmpt" }
53     }
54
55     case $mta {
56         "exim4":   {
57              case getfromhash($nodeinfo, 'heavy_exim') {
58                   true:  { include exim::mx }
59                   default: { include exim }
60              }
61         }
62     }
63
64     case getfromhash($nodeinfo, 'puppetmaster') {
65         true: { include puppetmaster }
66     }
67
68     case getfromhash($nodeinfo, 'muninmaster') {
69         true: { include munin-node::master }
70     }
71
72     case getfromhash($nodeinfo, 'nagiosmaster') {
73         true:    { include nagios::server }
74         default: { include nagios::client }
75     }
76
77     case $apache2 {
78          "true":  {
79               case getfromhash($nodeinfo, 'apache2_security_mirror') {
80                      true:    { include apache2::security_mirror }
81               }
82               case getfromhash($nodeinfo, 'apache2_www_mirror') {
83                      true:    { include apache2::www_mirror }
84               }
85               include apache2
86          }
87     }
88
89     case $rsyncd {
90          "true": { include rsyncd-log }
91     }
92
93
94     case getfromhash($nodeinfo, 'buildd') {
95          true:  {
96              include buildd
97          }
98     }
99
100     case $hostname {
101         klecker,ravel,senfl,orff,draghi: { include named::authoritative }
102         geo1,geo2,geo3:                  { include named::geodns }
103         franck,liszt,master,samosa,spohr,widor:   { include named::recursor }
104     }
105     case $hostname {
106         ries:   {
107             include unbound
108             $runs_local_resolver = true
109         }
110         default: {
111             $runs_local_resolver = false
112         }
113     }
114     case getfromhash($hosterinfo, 'nameservers') {
115         false:      {}
116         default:    { include resolv }
117     }
118
119     case $kernel {
120         Linux: {
121             include ferm
122             include ferm::per-host
123             case $rsyncd {
124                 "true": { include ferm::rsync }
125             }
126         }
127     }
128
129     case $hostname {
130         beethoven,ravel,spohr,stabile: {
131             include nfs-server
132         }
133     }
134
135     case $brokenhosts {
136         "true":    { include hosts }
137     }
138     case $portforwarder_user_exists {
139         "true":    { include portforwarder }
140     }
141
142     include samhain
143
144     case $hostname {
145         byrd,schuetz,tchaikovsky: {
146             include krb
147         }
148         draghi,quantz: {
149             include krb
150             include afs
151         }
152         lamb,locke,rautavaara,rietz: {
153             include krb
154             include afs::server
155         }
156     }
157
158     case $hostname {
159         chopin,geo3,soler,wieck: {
160             include debian-radvd
161         }
162    }
163 }
164
165 # vim:set et:
166 # vim:set sts=4 ts=4:
167 # vim:set shiftwidth=4: