]> gitweb.fluxo.info Git - puppet-puppet.git/commitdiff
Adding passenger support
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 18 Jan 2013 20:54:14 +0000 (18:54 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 18 Jan 2013 20:54:14 +0000 (18:54 -0200)
manifests/master/mongrel.pp [new file with mode: 0644]
manifests/master/passenger.pp [new file with mode: 0644]
manifests/puppetmasterd.pp
templates/puppetmaster.erb

diff --git a/manifests/master/mongrel.pp b/manifests/master/mongrel.pp
new file mode 100644 (file)
index 0000000..eb96247
--- /dev/null
@@ -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 (file)
index 0000000..38d3c97
--- /dev/null
@@ -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,
+  }
+}
index f542f1f6e17fb7dabe479a13ed72942df20d14d5..37a95fff224a13cedae18e7d70719840210181ef 100644 (file)
@@ -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",
index 2ae5f111f73c5f91971b7081b7d762f6c7dd4615..b3ce647ebe42c8bb4edbc33dd465a1ff32e94633 100644 (file)
@@ -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 %>