All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
1 # puppet module: puppet
2 # class: puppet::server
4 # Copyright © 2010 martin f. krafft <madduck@madduck.net>
5 # Released under the terms of the Artistic Licence 2.0
7 class puppet::server::install {
9 package { puppetmaster:
13 if $puppet_server_enable_storeconfigs {
17 , "libactiverecord-ruby1.8"
18 , "libactivesupport-ruby1.8"
21 , "libmemcache-client-ruby1.8"
24 , "libtext-format-ruby1.8"
32 case $puppet_server_dbadapter {
34 package { [ "postgresql", "libpgsql-ruby1.8" ]:
39 package { "libsqlite3-ruby1.8": ensure => installed }
45 class puppet::server::service {
47 service { puppetmaster:
48 ensure => $puppet_server_ensure_running ? { true => running, false => undef },
49 enable => $puppet_server_enable_at_boot,
50 require => [ Class["puppet::server::install"]
51 , File["/etc/default/puppetmaster"]
56 class puppet::server::cron {
58 cron { restart-puppetmaster:
59 command => "if /etc/init.d/puppetmaster status | grep -q failed; then /etc/init.d/puppetmaster restart; fi",
62 require => [ Class["puppet::server::install"], Package["cron"] ],
63 ensure => $puppet_server_ensure_running ? { true => present, false => absent }
67 class puppet::server::group {
69 group { puppetmasters:
74 class puppet::server::files {
76 include puppet::server::group
78 case $operatingsystem {
80 file { "/etc/default/puppetmaster":
81 content => template("puppet/server/etc_default_puppetmaster"),
89 file { "/etc/puppet/manifests/dev.pp":
94 define puppet_directory($ensure = directory) {
98 group => puppetmasters,
101 require => Group[puppetmasters],
102 ignore => [".gitignore", ".*.sw?"]
105 puppet_directory { "/etc/puppet/files": }
106 puppet_directory { "/etc/puppet/templates": }
107 puppet_directory { "/etc/puppet/modules/production": }
108 puppet_directory { "/etc/puppet/modules/development": }
109 puppet_directory { "/etc/puppet/modules/site-local": }
110 puppet_directory { "/etc/puppet/manifests": }
112 if puppet_server_extnodes_script != "" {
113 puppet_directory { "$puppet_server_extnodes_nodes_uri": }
114 puppet_directory { "$puppet_server_extnodes_roles_uri": }
117 file { "/etc/puppet/fileserver.conf":
118 content => template("puppet/server/fileserver.conf"),
122 notify => Service[puppetmaster]
125 file { "/etc/puppet/auth.conf":
126 source => "puppet:///modules/puppet/server/auth.conf",
130 notify => Service[puppetmaster]
134 class puppet::server::ferm {
136 @ferm::dport_rule { "incoming-puppetmaster":
137 ensure => $puppet_server_servertype ? {
138 # it's in everyone's interest if access to a webrick
139 # machine is not enabled by default
140 'webrick' => absent, default => present
142 dport => $puppet_server_publicport,
144 comment => "allow connections to the puppetmaster",
148 class puppet::server::sudo {
150 if defined(Class["sudo"]) {
151 @sudo::permission { "puppetca":
153 who => "%puppetmasters",
155 command => '/usr/sbin/puppetca'
160 class puppet::server inherits puppet::sharedconfvars {
162 # if defined(Class["puppet::client"]) {
163 # fail("You must not include the puppet::client class before puppet::server.")
166 # since client and server use the same configuration file (NARF!!!), we
167 # have to insist (see above), so that we can use a different template.
168 #$_puppet_template_file = "puppetmaster.conf"
169 #include puppet::client
171 $puppet_server_varlib = $puppet_server_varlib ? {
172 "" => $puppet_client_varlib,
173 default => $puppet_server_varlib
176 $puppet_server_servertype = $puppet_server_servertype ? {
178 default => $puppet_server_servertype
181 $puppet_server_servercount = $puppet_server_servercount ? {
183 default => $puppet_server_servercount
186 $puppet_server_baseport = $puppet_server_baseport ? {
188 default => $puppet_server_baseport
191 $puppet_server_publicport = $puppet_server_publicport ? {
193 default => $puppet_server_publicport
196 $puppet_server_ensure_running = $puppet_server_ensure_running ? {
198 default => $puppet_server_ensure_running
201 $puppet_server_enable_at_boot = $puppet_server_enable_at_boot ? {
203 default => $puppet_server_enable_at_boot
206 $puppet_server_extnodes_nodes_uri = $puppet_server_extnodes_nodes_uri ? {
207 "" => "/etc/puppet/nodes",
208 default => $puppet_server_extnodes_nodes_uri
211 $puppet_server_extnodes_roles_uri = $puppet_server_extnodes_roles_uri ? {
212 "" => "/etc/puppet/roles",
213 default => $puppet_server_extnodes_roles_uri
216 $puppet_server_certname = $puppet_server_certname ? {
217 "" => $puppet_puppetmaster,
218 default => $puppet_server_certname
221 $puppet_server_acl_fileserver = $puppet_server_acl_fileserver ? {
222 "" => "allow *.$puppet_default_domain",
223 default => $puppet_server_acl_fileserver
226 $puppet_server_acl_plugins = $puppet_server_acl_plugins ? {
227 "" => "allow *.$puppet_default_domain",
228 default => $puppet_server_acl_plugins
231 $puppet_server_acl_puppetbucket = $puppet_server_acl_puppetbucket ? {
232 "" => "allow *.$puppet_default_domain",
233 default => $puppet_server_acl_puppetbucket
236 $puppet_server_acl_puppetreports = $puppet_server_acl_puppetreports ? {
237 "" => "allow *.$puppet_default_domain",
238 default => $puppet_server_acl_puppetreports
241 $puppet_server_acl_resource = $puppet_server_acl_resource ? {
242 "" => "allow 127.0.0.1",
243 default => $puppet_server_acl_resource
246 $puppet_server_enable_storeconfigs = $puppet_server_enable_storeconfigs ? {
248 default => $puppet_server_enable_storeconfigs
251 $puppet_server_thin_storeconfigs = $puppet_server_thin_storeconfigs ? {
253 default => $puppet_server_thin_storeconfigs
256 $puppet_server_dbadapter = $puppet_server_dbadapter ? {
258 default => $puppet_server_dbadapter
261 $puppet_server_dbuser = $puppet_server_dbuser ? {
263 default => $puppet_server_dbuser
266 $puppet_server_dbpassword = $puppet_server_dbpassword
268 $puppet_server_dbserver = $puppet_server_dbserver ? {
270 default => $puppet_server_dbserver
273 $puppet_server_dbname = $puppet_server_dbname ? {
275 default => $puppet_server_dbname
278 $puppet_server_dblocation = $puppet_server_dblocation ? {
279 "" => "/var/lib/puppet/storeconfigs.sqlite",
280 default => $puppet_server_dbname
283 include puppet::server::install, puppet::server::service,
284 puppet::server::cron, puppet::server::files,
285 puppet::server::ferm, puppet::server::sudo
287 $_puppet_role = "server"
288 include puppet::sharedconffiles