diff modules/apache/manifests/mod/worker.pp @ 0:956e484adc12

Initial public release of Puppet configs
author IBBoard <dev@ibboard.co.uk>
date Sat, 16 Aug 2014 19:47:38 +0000
parents
children 37675581a273
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/apache/manifests/mod/worker.pp	Sat Aug 16 19:47:38 2014 +0000
@@ -0,0 +1,72 @@
+class apache::mod::worker (
+  $startservers        = '2',
+  $maxclients          = '150',
+  $minsparethreads     = '25',
+  $maxsparethreads     = '75',
+  $threadsperchild     = '25',
+  $maxrequestsperchild = '0',
+  $serverlimit         = '25',
+  $apache_version      = $::apache::apache_version,
+) {
+  if defined(Class['apache::mod::event']) {
+    fail('May not include both apache::mod::worker and apache::mod::event on the same node')
+  }
+  if defined(Class['apache::mod::itk']) {
+    fail('May not include both apache::mod::worker and apache::mod::itk on the same node')
+  }
+  if defined(Class['apache::mod::peruser']) {
+    fail('May not include both apache::mod::worker and apache::mod::peruser on the same node')
+  }
+  if defined(Class['apache::mod::prefork']) {
+    fail('May not include both apache::mod::worker and apache::mod::prefork on the same node')
+  }
+  File {
+    owner => 'root',
+    group => $::apache::params::root_group,
+    mode  => '0644',
+  }
+
+  # Template uses:
+  # - $startservers
+  # - $maxclients
+  # - $minsparethreads
+  # - $maxsparethreads
+  # - $threadsperchild
+  # - $maxrequestsperchild
+  # - $serverlimit
+  file { "${::apache::mod_dir}/worker.conf":
+    ensure  => file,
+    content => template('apache/mod/worker.conf.erb'),
+    require => Exec["mkdir ${::apache::mod_dir}"],
+    before  => File[$::apache::mod_dir],
+    notify  => Service['httpd'],
+  }
+
+  case $::osfamily {
+    'redhat': {
+      if $apache_version >= 2.4 {
+        ::apache::mpm{ 'worker':
+          apache_version => $apache_version,
+        }
+      }
+      else {
+        file_line { '/etc/sysconfig/httpd worker enable':
+          ensure  => present,
+          path    => '/etc/sysconfig/httpd',
+          line    => 'HTTPD=/usr/sbin/httpd.worker',
+          match   => '#?HTTPD=/usr/sbin/httpd.worker',
+          require => Package['httpd'],
+          notify  => Service['httpd'],
+        }
+      }
+    }
+    'debian', 'freebsd': {
+      ::apache::mpm{ 'worker':
+        apache_version => $apache_version,
+      }
+    }
+    default: {
+      fail("Unsupported osfamily ${::osfamily}")
+    }
+  }
+}