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 
       | 
      
        # File 'manifests/mod/worker.pp', line 40
class apache::mod::worker (
  Integer $startservers            = 2,
  Integer $minsparethreads         = 25,
  Integer $maxsparethreads         = 75,
  Integer $threadsperchild         = 25,
  Integer $maxrequestsperchild     = 0,
  Integer $serverlimit             = 25,
  Integer $threadlimit             = 64,
  Integer $listenbacklog           = 511,
  Integer $maxrequestworkers       = 150,
) {
  include apache
  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  => $apache::file_mode,
  }
  # Template uses:
  # - $startservers
  # - $maxrequestworkers
  # - $minsparethreads
  # - $maxsparethreads
  # - $threadsperchild
  # - $maxrequestsperchild
  # - $serverlimit
  # - $threadLimit
  # - $listenbacklog
  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  => Class['apache::service'],
  }
  case $facts['os']['family'] {
    'redhat', 'debian', 'freebsd': {
      ::apache::mpm { 'worker':
      }
    }
    'Suse': {
      ::apache::mpm { 'worker':
        lib_path => '/usr/lib64/apache2-worker',
      }
    }
    'gentoo': {
      ::portage::makeconf { 'apache2_mpms':
        content => 'worker',
      }
    }
    default: {
      fail("Unsupported osfamily ${$facts['os']['family']}")
    }
  }
}
       |