]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/apache/manifests/mod/peruser.pp
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / apache / manifests / mod / peruser.pp
diff --git a/3rdparty/modules/apache/manifests/mod/peruser.pp b/3rdparty/modules/apache/manifests/mod/peruser.pp
new file mode 100644 (file)
index 0000000..b6a8015
--- /dev/null
@@ -0,0 +1,76 @@
+class apache::mod::peruser (
+  $minspareprocessors = '2',
+  $minprocessors = '2',
+  $maxprocessors = '10',
+  $maxclients = '150',
+  $maxrequestsperchild = '1000',
+  $idletimeout = '120',
+  $expiretimeout = '120',
+  $keepalive = 'Off',
+) {
+
+  case $::osfamily {
+    'freebsd' : {
+      fail("Unsupported osfamily ${::osfamily}")
+    }
+    default: {
+      if $::osfamily == 'gentoo' {
+        ::portage::makeconf { 'apache2_mpms':
+          content => 'peruser',
+        }
+      }
+
+      if defined(Class['apache::mod::event']) {
+        fail('May not include both apache::mod::peruser and apache::mod::event on the same node')
+      }
+      if defined(Class['apache::mod::itk']) {
+        fail('May not include both apache::mod::peruser and apache::mod::itk on the same node')
+      }
+      if defined(Class['apache::mod::prefork']) {
+        fail('May not include both apache::mod::peruser and apache::mod::prefork on the same node')
+      }
+      if defined(Class['apache::mod::worker']) {
+        fail('May not include both apache::mod::peruser and apache::mod::worker on the same node')
+      }
+      File {
+        owner => 'root',
+        group => $::apache::params::root_group,
+        mode  => '0644',
+      }
+
+      $mod_dir = $::apache::mod_dir
+
+      # Template uses:
+      # - $minspareprocessors
+      # - $minprocessors
+      # - $maxprocessors
+      # - $maxclients
+      # - $maxrequestsperchild
+      # - $idletimeout
+      # - $expiretimeout
+      # - $keepalive
+      # - $mod_dir
+      file { "${::apache::mod_dir}/peruser.conf":
+        ensure  => file,
+        content => template('apache/mod/peruser.conf.erb'),
+        require => Exec["mkdir ${::apache::mod_dir}"],
+        before  => File[$::apache::mod_dir],
+        notify  => Class['apache::service'],
+      }
+      file { "${::apache::mod_dir}/peruser":
+        ensure  => directory,
+        require => File[$::apache::mod_dir],
+      }
+      file { "${::apache::mod_dir}/peruser/multiplexers":
+        ensure  => directory,
+        require => File["${::apache::mod_dir}/peruser"],
+      }
+      file { "${::apache::mod_dir}/peruser/processors":
+        ensure  => directory,
+        require => File["${::apache::mod_dir}/peruser"],
+      }
+
+      ::apache::peruser::multiplexer { '01-default': }
+    }
+  }
+}