Project

General

Profile

« Previous | Next » 

Revision af4efdd2

Added by Greg Sutcliffe about 12 years ago

Make puppet::server a parameterized class

This is a drop-in replacement - running 'include puppet::server' should
behave exactly as before. In addition, you can now do things like:

class { '::puppet::server': git_repo => true }

View differences:

manifests/server/config.pp
class puppet::server::config inherits puppet::config {
if $puppet::params::passenger { include puppet::server::passenger }
if $puppet::server::passenger { include puppet::server::passenger }
# appends our server configuration to puppet.conf
File ["${puppet::params::dir}/puppet.conf"] {
File ["${puppet::server::dir}/puppet.conf"] {
content => template('puppet/puppet.conf.erb', 'puppet/server/puppet.conf.erb'),
}
exec {'generate_ca_cert':
creates => "${puppet::params::ssl_dir}/certs/${::fqdn}.pem",
creates => "${puppet::server::ssl_dir}/certs/${::fqdn}.pem",
command => "puppetca --generate ${::fqdn}",
path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
}
if $puppet::params::git_repo {
if $puppet::server::git_repo {
# location where our puppet environments are located
file { $puppet::params::envs_dir:
file { $puppet::server::envs_dir:
ensure => directory,
owner => $puppet::params::user,
owner => $puppet::server::user,
}
# need to chown the $vardir before puppet does it, or else
......
file { '/var/lib/puppet':
ensure => directory,
owner => $puppet::params::user,
owner => $puppet::server::user,
}
include git
git::repo { 'puppet_repo':
bare => true,
target => $puppet::params::git_repo_path,
user => $puppet::params::user,
require => File[$puppet::params::envs_dir],
target => $puppet::server::git_repo_path,
user => $puppet::server::user,
require => File[$puppet::server::envs_dir],
}
# git post hook to auto generate an environment per branch
file { "${puppet::params::git_repo_path}/hooks/post-receive":
content => template('puppet/server/post-receive.erb'),
owner => $puppet::params::user,
mode => '0555',
file { "${puppet::server::git_repo_path}/hooks/${puppet::server::post_hook_name}":
content => template("$puppet::server::post_hook_content"),
owner => $puppet::server::user,
mode => '0755',
require => Git::Repo['puppet_repo'],
}
user { $puppet::params::user:
user { $puppet::server::user:
shell => '/usr/bin/git-shell',
}
}
else
{
file { [$puppet::params::modules_path, $puppet::params::common_modules_path]:
file { [$puppet::server::modules_path, $puppet::server::common_modules_path]:
ensure => directory,
}
# setup empty directories for our environments
puppet::server::env {$puppet::params::environments: }
puppet::server::env {$puppet::server::environments: }
}
}

Also available in: Unified diff