Project

General

Profile

Download (2.07 KB) Statistics
| Branch: | Tag: | Revision:
# == Class: puppet::server::passenger
#
# Set up the puppet server using passenger and apache.
#
class puppet::server::passenger (
$app_root = $::puppet::server_app_root,
$passenger_max_pool = $::puppet::server_passenger_max_pool,
$port = $::puppet::server_port,
$ssl_ca_cert = $::puppet::server::ssl_ca_cert,
$ssl_ca_crl = $::puppet::server::ssl_ca_crl,
$ssl_cert = $::puppet::server::ssl_cert,
$ssl_cert_key = $::puppet::server::ssl_cert_key,
$ssl_chain = $::puppet::server::ssl_chain,
$ssl_dir = $::puppet::server_ssl_dir,
$user = $::puppet::server_user
) {
include ::puppet::server::rack
include ::apache

case $::operatingsystem {
Debian,Ubuntu: {
file { '/etc/default/puppetmaster':
content => "START=no\n",
before => Class['puppet::server::install'],
}
}
default: {
# nothing to do
}
}

$directories = [
{
'path' => "${app_root}/public/",
'passenger_enabled' => 'On',
},
]

# The following client headers allow the same configuration to work with Pound.
$request_headers = [
'set X-SSL-Subject %{SSL_CLIENT_S_DN}e',
'set X-Client-DN %{SSL_CLIENT_S_DN}e',
'set X-Client-Verify %{SSL_CLIENT_VERIFY}e',
'unset X-Forwarded-For',
]

apache::vhost { 'puppet':
docroot => "${app_root}/public/",
directories => $directories,
port => $port,
ssl => true,
ssl_cert => $ssl_cert,
ssl_key => $ssl_cert_key,
ssl_ca => $ssl_ca_cert,
ssl_crl => $ssl_ca_crl,
ssl_chain => $ssl_chain,
ssl_protocol => '-ALL +SSLv3 +TLSv1',
ssl_cipher => 'ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP',
ssl_verify_client => 'optional',
ssl_options => '+StdEnvVars +ExportCertData',
ssl_verify_depth => '1',
request_headers => $request_headers,
options => ['None'],
require => Class['::puppet::server::rack'],
}

}
(4-4/6)