This repository was archived by the owner on Jun 5, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathinit.pp
109 lines (100 loc) · 3.08 KB
/
init.pp
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
# Class: passenger
#
# This class installs Passenger (mod_rails) on your system.
# http://www.modrails.com
#
# Parameters:
# [*passenger_version*]
# The Version of Passenger to be installed
#
# [*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.
#
# Usage:
#
# 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',
# passenger_package => 'passenger',
# include_build_tools => 'true',
# }
#
#
# Requires:
# - apache
# - apache::dev
#
# Optionally requires
# - gcc
# - 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,
$compile_passenger = $passenger::params::compile_passenger,
$include_build_tools = false,
) inherits passenger::params {
include '::apache'
include '::apache::dev'
include '::passenger::install'
include '::passenger::config'
if $compile_passenger {
class { '::passenger::compile': }
Class['passenger::install'] ->
Class['passenger::compile'] ->
Class['passenger::config']
}
if type3x($include_build_tools) == 'string' {
$include_build_tools_real = str2bool($include_build_tools)
} else {
$include_build_tools_real = $include_build_tools
}
validate_bool($include_build_tools_real)
if $include_build_tools_real == true {
require 'gcc'
require 'make'
}
anchor { 'passenger::begin': }
anchor { 'passenger::end': }
#projects.puppetlabs.com - bug - #8040: Anchoring pattern
Anchor['passenger::begin'] ->
Class['apache::dev'] ->
Class['passenger::install'] ->
Class['passenger::config'] ->
Anchor['passenger::end']
}