--- /dev/null
+# 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,
+ }
+}
--- /dev/null
+# 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,
+ }
+}
# 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
# 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,
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",
# 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)
# port 8140 and change the below number to something else, such as
# 18140.
PORT=<%= puppetmaster_port %>
+<% end %>