File: event.pp

package info (click to toggle)
puppet-module-puppetlabs-apache 12.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,664 kB
  • sloc: ruby: 275; sh: 32; makefile: 2
file content (112 lines) | stat: -rw-r--r-- 4,305 bytes parent folder | download
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
# @summary
#   Installs and configures `mod_event`.
# 
# @param startservers
#   Sets the number of child server processes created at startup, via the module's `StartServers` directive. Setting this to `false` 
#   removes the parameter.
#
# @param maxrequestworkers
#   Sets the maximum number of connections Apache can simultaneously process, via the module's `MaxRequestWorkers` directive. Setting 
#   these to `false` removes the parameters.
#
# @param minsparethreads
#   Sets the minimum number of idle threads, via the `MinSpareThreads` directive. Setting this to `false` removes the parameters.
#
# @param maxsparethreads
#   Sets the maximum number of idle threads, via the `MaxSpareThreads` directive. Setting this to `false` removes the parameters.
#
# @param threadsperchild
#   Number of threads created by each child process.
#
# @param maxconnectionsperchild
#   Limit on the number of connections that an individual child server will handle during its life.
#
# @param serverlimit
#   Limits the configurable number of processes via the `ServerLimit` directive. Setting this to `false` removes the parameter.
#
# @param threadlimit
#    Limits the number of event threads via the module's `ThreadLimit` directive. Setting this to `false` removes the parameter.
#
# @param listenbacklog
#   Sets the maximum length of the pending connections queue via the module's `ListenBackLog` directive. Setting this to `false` removes 
#   the parameter.
#
# @note
#   You cannot include apache::mod::event with apache::mod::itk, apache::mod::peruser, apache::mod::prefork, or 
#   apache::mod::worker on the same server.
#
# @see https://httpd.apache.org/docs/current/mod/event.html for additional documentation.
# @note Unsupported platforms: SLES: all
class apache::mod::event (
  Variant[Integer, Boolean] $startservers                     = 2,
  Optional[Variant[Integer, Boolean]] $maxrequestworkers      = undef,
  Variant[Integer, Boolean] $minsparethreads                  = 25,
  Variant[Integer, Boolean] $maxsparethreads                  = 75,
  Variant[Integer, Boolean] $threadsperchild                  = 25,
  Optional[Variant[Integer, Boolean]] $maxconnectionsperchild = undef,
  Variant[Integer, Boolean] $serverlimit                      = 25,
  Variant[Integer, Boolean]  $threadlimit                     = 64,
  Variant[Integer, Boolean]  $listenbacklog                   = 511,
) {
  include apache

  if defined(Class['apache::mod::itk']) {
    fail('May not include both apache::mod::event and apache::mod::itk on the same node')
  }
  if defined(Class['apache::mod::peruser']) {
    fail('May not include both apache::mod::event and apache::mod::peruser on the same node')
  }
  if defined(Class['apache::mod::prefork']) {
    fail('May not include both apache::mod::event and apache::mod::prefork on the same node')
  }
  if defined(Class['apache::mod::worker']) {
    fail('May not include both apache::mod::event and apache::mod::worker on the same node')
  }
  File {
    owner => 'root',
    group => $apache::params::root_group,
    mode  => $apache::file_mode,
  }

  # Template uses:
  # - $startservers
  # - $minsparethreads
  # - $maxsparethreads
  # - $threadsperchild
  # - $serverlimit
  $parameters = {
    'serverlimit'             => $serverlimit,
    'startservers'            => $startservers,
    'maxrequestworkers'       => $maxrequestworkers,
    'minsparethreads'         => $minsparethreads,
    'maxsparethreads'         => $maxsparethreads,
    'threadsperchild'         => $threadsperchild,
    'maxconnectionsperchild'  => $maxconnectionsperchild,
    'threadlimit'             => $threadlimit,
    'listenbacklog'           => $listenbacklog,
  }

  file { "${apache::mod_dir}/event.conf":
    ensure  => file,
    mode    => $apache::file_mode,
    content => epp('apache/mod/event.conf.epp', $parameters),
    require => Exec["mkdir ${apache::mod_dir}"],
    before  => File[$apache::mod_dir],
    notify  => Class['apache::service'],
  }

  case $facts['os']['family'] {
    'RedHat', 'Debian', 'FreeBSD' : {
      apache::mpm { 'event':
      }
    }
    'Gentoo': {
      ::portage::makeconf { 'apache2_mpms':
        content => 'event',
      }
    }
    default: {
      fail("Unsupported osfamily ${$facts['os']['family']}")
    }
  }
}