From 1c699503c7b5929c9e2f5a6fcb11487486b46f1d Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Wed, 12 May 2010 15:09:00 -0400 Subject: refactor classes for multi-platform, place munin in seperate (optional) class, adapt to shared apache puppet module, support a config file for apache --- files/mod_passenger.conf | 0 manifests/base.pp | 13 +++++++++++++ manifests/debian.pp | 19 +++++++++++++++++++ manifests/init.pp | 40 +++++++--------------------------------- manifests/munin.pp | 20 ++++++++++++++++++++ 5 files changed, 59 insertions(+), 33 deletions(-) create mode 100644 files/mod_passenger.conf create mode 100644 manifests/base.pp create mode 100644 manifests/debian.pp create mode 100644 manifests/munin.pp diff --git a/files/mod_passenger.conf b/files/mod_passenger.conf new file mode 100644 index 0000000..e69de29 diff --git a/manifests/base.pp b/manifests/base.pp new file mode 100644 index 0000000..34ef976 --- /dev/null +++ b/manifests/base.pp @@ -0,0 +1,13 @@ +class passenger::base { + + include apache + + apache::config::file { 'mod_passenger': + ensure => present, + source => [ "puppet://${server}/modules/site-passenger/${fqdn}/mod_passenger.conf", + "puppet://${server}/modules/site-passenger/mod_passenger.conf", + "puppet://${server}/modules/passenger/mod_passenger.conf", + ], + } + +} diff --git a/manifests/debian.pp b/manifests/debian.pp new file mode 100644 index 0000000..fdffdfa --- /dev/null +++ b/manifests/debian.pp @@ -0,0 +1,19 @@ +class passenger::base::debian inherits passenger::base { + + if !defined(Package["libapache2-mod-passenger"]) { + if $passenger_ensure_version == '' { $passenger_ensure_version = 'installed' } + apache::debian::module { 'passenger': + ensure => $passenger_ensure_version, + package_name => 'libapache2-mod-passenger'; + } + } + + if !defined(Package["librack-ruby"]) { + if $librack_ensure_version == '' { $librack_ensure_version = 'installed' } + package { + "librack-ruby": + ensure => $librack_ensure_version; + } + } + +} diff --git a/manifests/init.pp b/manifests/init.pp index ba19f1f..59cdabd 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -8,40 +8,14 @@ # published by the Free Software Foundation. class passenger { - - case $passenger_memory_munin_config { '': - { $passenger_memory_munin_config = "user root\nenv.passenger_memory_stats /usr/sbin/passenger-memory-stats" } + + case $operatingsystem { + debian: { include passenger::debian } + default: { include passenger::base } } - case $passenger_stats_munin_config { '': - { $passenger_stats_munin_config = "user root\n" } - } + if $use_munin { + include passenger::munin + } - if !defined(Package["libapache2-mod-passenger"]) { - if $passenger_ensure_version == '' { $passenger_ensure_version = 'installed' } - package { - "libapache2-mod-passenger": - ensure => $passenger_ensure_version; - } - } - if !defined(Package["librack-ruby"]) { - if $librack_ensure_version == '' { $librack_ensure_version = 'installed' } - package { - "librack-ruby": - ensure => $librack_ensure_version; - } - } - - apache2::module { - "passenger": ensure => present, require_package => "libapache2-mod-passenger"; - } - - munin::plugin::deploy { - 'passenger_memory_stats': - source => "passenger/munin/passenger_memory_stats", - config => $passenger_memory_munin_config; - 'passenger_stats': - source => "passenger/munin/passenger_stats", - config => $passenger_stats_munin_config; - } } diff --git a/manifests/munin.pp b/manifests/munin.pp new file mode 100644 index 0000000..9b6cc68 --- /dev/null +++ b/manifests/munin.pp @@ -0,0 +1,20 @@ +class passenger::munin { + + case $passenger_memory_munin_config { '': + { $passenger_memory_munin_config = "user root\nenv.passenger_memory_stats /usr/sbin/passenger-memory-stats" } + } + + case $passenger_stats_munin_config { '': + { $passenger_stats_munin_config = "user root\n" } + } + + munin::plugin::deploy { + 'passenger_memory_stats': + source => "passenger/munin/passenger_memory_stats", + config => $passenger_memory_munin_config; + 'passenger_stats': + source => "passenger/munin/passenger_stats", + config => $passenger_stats_munin_config; + } + +} -- cgit v1.2.3 From 9820bf2428a6fe3dbd0f361e5679991d263b73af Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Wed, 12 May 2010 18:17:29 -0400 Subject: correct class name typo --- manifests/debian.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/debian.pp b/manifests/debian.pp index fdffdfa..f351111 100644 --- a/manifests/debian.pp +++ b/manifests/debian.pp @@ -1,4 +1,4 @@ -class passenger::base::debian inherits passenger::base { +class passenger::debian inherits passenger::base { if !defined(Package["libapache2-mod-passenger"]) { if $passenger_ensure_version == '' { $passenger_ensure_version = 'installed' } -- cgit v1.2.3 From 177097af548141e26a7738073710a2acfa0fa170 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Mon, 9 Apr 2012 11:17:45 -0400 Subject: switch to parameterized class, and allow for gem based installation of passenger --- manifests/init.pp | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 59cdabd..af34c5b 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -7,15 +7,57 @@ # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation. -class passenger { +class passenger ( $use_gems = false, $use_munin = true ) +{ + + if $passenger_ensure_version == '' { $passenger_ensure_version = 'installed' } + if $librack_ensure_version == '' { $librack_ensure_version = 'installed' } + + if ! $use_gems { + if !defined(Package["libapache2-mod-passenger"]) { + package { + "libapache2-mod-passenger": + ensure => $passenger_ensure_version; + } + } + if !defined(Package["librack-ruby"]) { + package { + [ "librack-ruby", "librack-ruby1.8"] : + ensure => $librack_ensure_version; + } + } + else { + package { + "passenger": + provider => gem, + ensure => $passenger_ensure_version; + "rack": + provider => gem, + ensure => $librack_ensure_version; + } + } + } - case $operatingsystem { - debian: { include passenger::debian } - default: { include passenger::base } + apache2::module { + "passenger": ensure => present, require_package => "libapache2-mod-passenger"; } if $use_munin { - include passenger::munin - } + case $passenger_memory_munin_config { '': + { $passenger_memory_munin_config = "user root\nenv.passenger_memory_stats /usr/sbin/passenger-memory-stats" } + } + case $passenger_stats_munin_config { '': + { $passenger_stats_munin_config = "user root\n" } + } + + munin::plugin::deploy { + 'passenger_memory_stats': + source => "passenger/munin/passenger_memory_stats", + config => $passenger_memory_munin_config; + 'passenger_stats': + source => "passenger/munin/passenger_stats", + config => $passenger_stats_munin_config; + } + } } -- cgit v1.2.3