summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-01-18 18:54:14 -0200
committerSilvio Rhatto <rhatto@riseup.net>2013-01-18 18:54:14 -0200
commit0c0720ebfeb9aa3b7653b4b9b94d04634c9e3c30 (patch)
treeff320ff025daba4c33ec0fda1a7929dabefd3a99
parent9cca869888cb1d2eee6b9ca6e6e735993b04cd6f (diff)
downloadpuppet-puppet-0c0720ebfeb9aa3b7653b4b9b94d04634c9e3c30.tar.gz
puppet-puppet-0c0720ebfeb9aa3b7653b4b9b94d04634c9e3c30.tar.bz2
Adding passenger support
-rw-r--r--manifests/master/mongrel.pp44
-rw-r--r--manifests/master/passenger.pp15
-rw-r--r--manifests/puppetmasterd.pp60
-rw-r--r--templates/puppetmaster.erb3
4 files changed, 84 insertions, 38 deletions
diff --git a/manifests/master/mongrel.pp b/manifests/master/mongrel.pp
new file mode 100644
index 0000000..eb96247
--- /dev/null
+++ b/manifests/master/mongrel.pp
@@ -0,0 +1,44 @@
+# handles puppetmasterd service
+class puppet::master::mongrel {
+
+ case $puppetmaster_puppetmasters {
+ '': { $puppetmaster_puppetmasters = '4' }
+ }
+
+ case $puppetmaster_port {
+ '': { $puppetmaster_port = '18140' }
+ }
+
+ # Include nginx
+ include nginx::puppetmaster
+
+ case defined(Package["mongrel"]) {
+ false: { package { "mongrel": ensure => installed, } }
+ }
+
+ package { "puppetmaster":
+ ensure => installed,
+ }
+
+ service { "puppetmaster":
+ enable => true,
+ ensure => running,
+ hasrestart => true,
+ pattern => 'puppet master',
+ require => [ Package['puppetmaster'], Package['mongrel'], Service['nginx'] ],
+ }
+
+}
+
+class puppet::master::mongrel::disabled {
+ include nginx::puppetmaster::disabled
+
+ Service['puppetmaster'] {
+ ensure => stopped,
+ }
+
+ Package['puppetmaster'] {
+ enable => false,
+ ensure => absent,
+ }
+}
diff --git a/manifests/master/passenger.pp b/manifests/master/passenger.pp
new file mode 100644
index 0000000..38d3c97
--- /dev/null
+++ b/manifests/master/passenger.pp
@@ -0,0 +1,15 @@
+# handles puppetmasterd service
+class puppet::master::passenger {
+ # make sure we're not running mongrel
+ include puppet::master::mongrel::disabled
+
+ # then include puppet class
+ include puppetd
+
+ # include passenger
+ include apache::passenger
+
+ package { 'puppetmaster-passenger':
+ ensure => installed,
+ }
+}
diff --git a/manifests/puppetmasterd.pp b/manifests/puppetmasterd.pp
index f542f1f..37a95ff 100644
--- a/manifests/puppetmasterd.pp
+++ b/manifests/puppetmasterd.pp
@@ -3,18 +3,14 @@ class puppetmasterd {
# Configuration
case $puppetmaster_servertype {
- '': {
+ 'mongrel': {
$puppetmaster_servertype = 'mongrel'
$puppetmaster_daemon_opts = '--ssl_client_header=HTTP_X_SSL_SUBJECT'
}
- }
-
- case $puppetmaster_puppetmasters {
- '': { $puppetmaster_puppetmasters = '4' }
- }
-
- case $puppetmaster_port {
- '': { $puppetmaster_port = '18140' }
+ '' {
+ $puppetmaster_servertype = 'passenger'
+ $puppetmaster_daemon_opts = ''
+ }
}
# Use this option if you want puppet to manage the certificates for all
@@ -39,11 +35,28 @@ class puppetmasterd {
# needed packages
package {
- "puppetmaster": ensure => installed;
"sqlite3": ensure => installed;
"libmysql-ruby": ensure => installed;
}
+ case $puppetmaster_servertype {
+ 'mongrel': {
+ include puppet::master::mongrel
+ }
+ 'passenger': {
+ include puppet::master::passenger
+ }
+ default: {
+ service { "puppetmaster":
+ enable => true,
+ ensure => running,
+ hasrestart => true,
+ pattern => 'puppet master',
+ require => Package['puppetmaster'],
+ }
+ }
+ }
+
file { "/etc/default/puppetmaster":
ensure => present,
owner => root,
@@ -75,33 +88,6 @@ class puppetmasterd {
require => User["puppet"],
}
- case $puppetmaster_servertype {
- 'mongrel': {
- include nginx::puppetmaster
-
- case defined(Package["mongrel"]) {
- false: { package { "mongrel": ensure => installed, } }
- }
-
- service { "puppetmaster":
- enable => true,
- ensure => running,
- hasrestart => true,
- pattern => 'puppet master',
- require => [ Package['puppetmaster'], Package['mongrel'], Service['nginx'] ],
- }
- }
- default: {
- service { "puppetmaster":
- enable => true,
- ensure => running,
- hasrestart => true,
- pattern => 'puppet master',
- require => Package['puppetmaster'],
- }
- }
- }
-
# cron rule to update puppet config repository every 5 minutes
cron { "puppet-update":
command => "/usr/local/sbin/update-puppet-conf.sh > /dev/null 2>&1",
diff --git a/templates/puppetmaster.erb b/templates/puppetmaster.erb
index 2ae5f11..b3ce647 100644
--- a/templates/puppetmaster.erb
+++ b/templates/puppetmaster.erb
@@ -5,7 +5,7 @@ START=yes
# Startup options
DAEMON_OPTS="<%= puppetmaster_daemon_opts %>"
-
+<% if puppetmaster_servertype == 'mongrel' %>
# What server type to run
# Options:
# webrick (default, cannot handle more than ~30 nodes)
@@ -34,3 +34,4 @@ PUPPETMASTERS=<%= puppetmaster_puppetmasters %>
# port 8140 and change the below number to something else, such as
# 18140.
PORT=<%= puppetmaster_port %>
+<% end %>