Skip to content
This repository was archived by the owner on Jun 5, 2020. It is now read-only.

Added support for centos-7, and fixed quite a lot bugs. #87

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion manifests/compile.pp
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
class passenger::compile {

exec {'compile-passenger':
path => [ $passenger::gem_binary_path, '/usr/bin', '/bin', '/usr/local/bin' ],
path => [ $passenger::options::gem_binary_path, '/usr/bin', '/bin', '/usr/local/bin' ],
command => 'passenger-install-apache2-module -a',
logoutput => on_failure,
creates => $passenger::mod_passenger_location,
unless => "test -f $passenger::mod_passenger_location",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is redundant with the creates check in L7; if actually requiring a file (and not a symlink or directory) here is necessary, please remove the creates

timeout => 0,
}

Expand Down
5 changes: 4 additions & 1 deletion manifests/config.pp
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#
class passenger::config {
$passenger_ruby = $passenger::passenger_ruby
$passenger_version = $passenger::passenger_version
$mod_passenger_location = $passenger::options::mod_passenger_location
$passenger_root = $passenger::options::passenger_root

case $::osfamily {
'debian': {
Expand Down
41 changes: 8 additions & 33 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,9 @@
# [*passenger_ruby*]
# The path to ruby on your system
#
# [*gem_path*]
# The path to rubygems on your system
#
# [*gem_binary_path*]
# Path to Rubygems binaries on your system
#
# [*passenger_root*]
# The passenger gem root directory
#
# [*mod_passenger_location*]
# Path to Passenger's mod_passenger.so file
#
# [*passenger_provider*]
# The package provider to use for the system
#
# [*passenger_package*]
# The name of the Passenger package
#
# [*include_build_tools*]
# Boolean to require gcc and make classes. Default is false.
#
Expand All @@ -36,11 +21,7 @@
# class { 'passenger':
# passenger_version => '3.0.21',
# passenger_ruby => '/usr/bin/ruby'
# gem_path => '/var/lib/gems/1.8/gems',
# gem_binary_path => '/var/lib/gems/1.8/bin',
# passenger_root => '/var/lib/gems/1.8/gems/passenger-3.0.21'
# mod_passenger_location => '/var/lib/gems/1.8/gems/passenger-3.0.21/ext/apache2/mod_passenger.so',
# passenger_provider => 'gem',
# packge_provider => 'gem',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo packge_provider -> package_provider

# passenger_package => 'passenger',
# include_build_tools => 'true',
# }
Expand All @@ -55,29 +36,24 @@
# - make
#
class passenger (
$gem_binary_path = $passenger::params::gem_binary_path,
$gem_path = $passenger::params::gem_path,
$mod_passenger_location = $passenger::params::mod_passenger_location,
$package_name = $passenger::params::package_name,
$package_ensure = $passenger::params::package_ensure,
$package_provider = $passenger::params::package_provider,
$passenger_package = $passenger::params::passenger_package,
$passenger_provider = $passenger::params::passenger_provider,
$passenger_root = $passenger::params::passenger_root,
$passenger_ruby = $passenger::params::passenger_ruby,
$passenger_version = $passenger::params::passenger_version,
$passenger_ruby = $passenger::params::passenger_ruby,
$package_provider = $passenger::params::package_provider,
$compile_passenger = $passenger::params::compile_passenger,
$include_build_tools = false,
$passenger_package = $passenger::params::passenger_package,
$include_build_tools = false
) inherits passenger::params {

include '::apache'
include '::apache::dev'

include '::passenger::options'
include '::passenger::install'
include '::passenger::config'

if $compile_passenger {
class { '::passenger::compile': }
Class['passenger::options'] ->
Class['passenger::install'] ->
Class['passenger::compile'] ->
Class['passenger::config']
Expand All @@ -102,8 +78,7 @@
Anchor['passenger::begin'] ->
Class['apache::dev'] ->
Class['passenger::install'] ->
Class['passenger::compile'] ->
Class['passenger::config'] ->
Anchor['passenger::end']


}
7 changes: 3 additions & 4 deletions manifests/install.pp
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
class passenger::install {

package { 'passenger':
ensure => $passenger::package_ensure,
name => $passenger::package_name,
ensure => $passenger::passenger_version,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this line the only actual fix for MODULES-2072?

provider => $passenger::package_provider,
}

if $passenger::package_dependencies {
package { $passenger::package_dependencies:
if $passenger::options::package_dependencies {
package { $passenger::options::package_dependencies:
ensure => present,
}
}
Expand Down
60 changes: 60 additions & 0 deletions manifests/options.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
class passenger::options {
$passenger_version = $passenger::passenger_version
$passenger_ruby = $passenger::passenger_ruby
$passenger_package = $passenger::passenger_package
$package_name = $passenger::package_name
$package_provider = $passenger::package_provider

if versioncmp ($passenger_version, '4.0.0') > 0 {
$builddir = 'buildout'
} else {
$builddir = 'ext'
}

case $::osfamily {
'debian': {
$gem_path = '/var/lib/gems/1.8/gems'
$gem_binary_path = '/var/lib/gems/1.8/bin'
$passenger_root = "$gem_path/passenger-${passenger_version}"
$mod_passenger_location = "$passenger_root/${builddir}/apache2/mod_passenger.so"

# Ubuntu does not have libopenssl-ruby - it's packaged in libruby
if $::lsbdistid == 'Debian' and $::lsbmajdistrelease <= 5 {
$package_dependencies = [ 'libopenssl-ruby', 'libcurl4-openssl-dev' ]
} else {
$package_dependencies = [ 'libruby', 'libcurl4-openssl-dev' ]
}
}
'redhat': {
case $::lsbmajdistrelease {
'5' : { $curl_package = 'curl-devel' }
default : { $curl_package = 'libcurl-devel' }
}
case $::operatingsystemmajrelease {
'6' : {
$real_gem_path = "/usr/lib/ruby/gems/1.8/gems"
$real_passenger_root = "${real_gem_path}/passenger-${passenger_version}"
$real_mod_passenger_location = "${real_passenger_root}/${builddir}/apache2/mod_passenger.so"
}
'7' : {
$real_gem_path = "/usr/local/share/gems/gems"
$real_passenger_root = "${real_gem_path}/passenger-${passenger_version}"
$real_mod_passenger_location = "$real_passenger_root/${builddir}/apache2/mod_passenger.so"
}
}
$package_dependencies = [ $curl_package, 'openssl-devel', 'zlib-devel', 'gcc-c++', 'ruby-devel' ]
$gem_path = $real_gem_path
$gem_binary_path = '/usr/lib/ruby/gems/1.8/gems/bin'
$passenger_root = $real_passenger_root
$mod_passenger_location = $real_mod_passenger_location
}
'darwin':{
$gem_path = '/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin'
$passenger_root = "$gem_path/passenger-${passenger_version}"
$mod_passenger_location = "$passenger_root/${builddir}/apache2/mod_passenger.so"
}
default: {
fail("Operating system ${::operatingsystem} is not supported with the Passenger module")
}
}
}
51 changes: 1 addition & 50 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -11,58 +11,9 @@
# Sample Usage:
#
class passenger::params {
$package_ensure = '3.0.21'
$passenger_version = '3.0.21'
$passenger_ruby = '/usr/bin/ruby'
$package_provider = 'gem'
$passenger_provider = 'gem'
$compile_passenger = true

if versioncmp ($passenger_version, '4.0.0') > 0 {
$builddir = 'buildout'
} else {
$builddir = 'ext'
}

case $::osfamily {
'debian': {
$package_name = 'passenger'
$passenger_package = 'passenger'
$gem_path = '/var/lib/gems/1.8/gems'
$gem_binary_path = '/var/lib/gems/1.8/bin'
$passenger_root = "/var/lib/gems/1.8/gems/passenger-${passenger_version}"
$mod_passenger_location = "/var/lib/gems/1.8/gems/passenger-${passenger_version}/${builddir}/apache2/mod_passenger.so"

# Ubuntu does not have libopenssl-ruby - it's packaged in libruby
if $::lsbdistid == 'Debian' and $::lsbmajdistrelease <= 5 {
$package_dependencies = [ 'libopenssl-ruby', 'libcurl4-openssl-dev' ]
} else {
$package_dependencies = [ 'libruby', 'libcurl4-openssl-dev' ]
}
}
'redhat': {
case $::lsbmajdistrelease {
'5' : { $curl_package = 'curl-devel' }
default : { $curl_package = 'libcurl-devel' }
}
$package_dependencies = [ $curl_package, 'openssl-devel', 'zlib-devel' ]
$package_name = 'passenger'
$passenger_package = 'passenger'
$gem_path = '/usr/lib/ruby/gems/1.8/gems'
$gem_binary_path = '/usr/lib/ruby/gems/1.8/gems/bin'
$passenger_root = "/usr/lib/ruby/gems/1.8/gems/passenger-${passenger_version}"
$mod_passenger_location = "/usr/lib/ruby/gems/1.8/gems/passenger-${passenger_version}/${builddir}/apache2/mod_passenger.so"
}
'darwin':{
$package_name = 'passenger'
$passenger_package = 'passenger'
$gem_path = '/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin'
$gem_binary_path = '/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin'
$passenger_root = "/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/passenger-${passenger_version}"
$mod_passenger_location = "/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/passenger-${passenger_version}/${builddir}/apache2/mod_passenger.so"
}
default: {
fail("Operating system ${::operatingsystem} is not supported with the Passenger module")
}
}
$passenger_package = 'passenger'
}
12 changes: 6 additions & 6 deletions templates/passenger-conf.erb
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
LoadModule passenger_module <%= scope.lookupvar('passenger::mod_passenger_location') %>
PassengerRoot <%= scope.lookupvar('passenger::passenger_root') %>
PassengerRuby <%= scope.lookupvar('passenger::passenger_ruby') %>
LoadModule passenger_module <%= @mod_passenger_location %>
PassengerRoot <%= @passenger_root %>
PassengerRuby <%= @passenger_ruby %>

# you probably want to tune these settings
PassengerHighPerformance on
PassengerMaxPoolSize 12
PassengerPoolIdleTime 1500
# PassengerMaxRequests 1000
PassengerStatThrottleRate 120
<% if scope.lookupvar('passenger::passenger_version') =~ /^4\.\d+\.\d+/ -%>
PassengerEnabled on
<% else -%>
<% if @passenger_version =~ /^3\.\d+\.\d+/ -%>
RailsAutoDetect On
<% else -%>
PassengerEnabled on
<% end -%>