Ori.livneh has submitted this change and it was merged.
Change subject: apache: add apache::mpm
......................................................................
apache: add apache::mpm
Adds a class that lets you select an Apache Multi-Processing Module (MPM).
Prefork, worker and event are available. Prefork is the default. Trusty and
Precise are both seamlessly supported.
Tested via Vagrant on both Precise and Trusty.
Change-Id: Ic952146b5eecb1d2e163e91fc08232202c728249
---
M modules/apache/manifests/init.pp
A modules/apache/manifests/mpm.pp
2 files changed, 71 insertions(+), 1 deletion(-)
Approvals:
Ori.livneh: Verified; Looks good to me, approved
Filippo Giunchedi: Looks good to me, but someone else must approve
diff --git a/modules/apache/manifests/init.pp b/modules/apache/manifests/init.pp
index 73e6954..d08c1a4 100644
--- a/modules/apache/manifests/init.pp
+++ b/modules/apache/manifests/init.pp
@@ -21,8 +21,9 @@
include apache::mod::access_compat # enables allow/deny syntax in 2.4
include apache::mod::filter # enables AddOutputFilterByType in 2.4
include apache::mod::version # enables <IfVersion> config guards
+ include apache::mpm # prefork by default
- package { [ 'apache2', 'apache2-mpm-prefork' ]:
+ package { 'apache2':
ensure => present,
}
diff --git a/modules/apache/manifests/mpm.pp b/modules/apache/manifests/mpm.pp
new file mode 100644
index 0000000..6379351
--- /dev/null
+++ b/modules/apache/manifests/mpm.pp
@@ -0,0 +1,69 @@
+# == Class: apache::mpm
+#
+# This class allows you to select an Apache Multi-Processing Module
+# (or MPM). MPMs are mutually exclusive; you can only enable one.
+# The MPMs available for you to choose from are prefork, worker, and
+# event.
+#
+# Worker and event scale better, but they don't work with any modules
+# which are not thread-safe, like PHP.
+#
+# See <http://httpd.apache.org/docs/current/mpm.html> for details.
+#
+# === Parameters
+#
+# [*mpm*]
+# Name of the chosen MPM. Must be 'prefork', 'worker', or 'event'.
+# The default is 'prefork'.
+#
+class apache::mpm( $mpm = 'prefork' ) {
+ include ::apache
+
+ $available_mpms = ['prefork', 'worker', 'event']
+ if ! member($available_mpms, $mpm) {
+ fail('mpm must be prefork, worker or event')
+ }
+
+ $selected_mod = "mpm_${mpm}"
+ $selected_pkg = "apache2-mpm-${mpm}"
+ $selected_cfg = "/etc/apache2/mods-available/mpm_${mpm}.load"
+
+ $rejected_mpms = reject($available_mpms, $mpm)
+ $rejected_mods = prefix($rejected_mpms, 'mpm_')
+ $rejected_pkgs = prefix($rejected_mpms, 'apache2-mpm-')
+
+ if $selected_mod != 'prefork' {
+ # mod_php5 is unsafe for threaded MPMs
+ apache::mod_conf { 'php5':
+ ensure => absent,
+ before => Package[$selected_pkg],
+ }
+ }
+
+ apache::mod_conf { $rejected_mods:
+ ensure => absent,
+ before => Package[$rejected_pkgs],
+ }
+
+ package { $rejected_pkgs:
+ ensure => absent,
+ before => Package[$selected_pkg],
+ }
+
+ package { $selected_pkg:
+ ensure => present,
+ before => File[$selected_cfg],
+ }
+
+ file { $selected_cfg:
+ ensure => file,
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ before => Apache::Mod_conf[$selected_mod],
+ }
+
+ apache::mod_conf { $selected_mod:
+ ensure => present,
+ }
+}
--
To view, visit https://gerrit.wikimedia.org/r/148542
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic952146b5eecb1d2e163e91fc08232202c728249
Gerrit-PatchSet: 5
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: Filippo Giunchedi <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits