|
class puppet::server::config inherits puppet::config {
|
|
if $puppet::server::passenger { include puppet::server::passenger }
|
|
|
|
# Include foreman components for the puppetmaster
|
|
# ENC script, reporting script etc.
|
|
include foreman::puppetmaster
|
|
|
|
# appends our server configuration to puppet.conf
|
|
File ["${puppet::server::dir}/puppet.conf"] {
|
|
content => template($puppet::server::agent_template, $puppet::server::master_template),
|
|
}
|
|
|
|
exec {'generate_ca_cert':
|
|
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::server::git_repo {
|
|
|
|
# location where our puppet environments are located
|
|
file { $puppet::server::envs_dir:
|
|
ensure => directory,
|
|
owner => $puppet::server::user,
|
|
}
|
|
|
|
# need to chown the $vardir before puppet does it, or else
|
|
# we can't write puppet.git/ on the first run
|
|
|
|
file { '/var/lib/puppet':
|
|
ensure => directory,
|
|
owner => $puppet::server::user,
|
|
}
|
|
|
|
include git
|
|
|
|
git::repo { 'puppet_repo':
|
|
bare => true,
|
|
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::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::server::user:
|
|
shell => '/usr/bin/git-shell',
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
file { [$puppet::server::modules_path, $puppet::server::common_modules_path]:
|
|
ensure => directory,
|
|
}
|
|
|
|
# setup empty directories for our environments
|
|
puppet::server::env {$puppet::server::environments: }
|
|
}
|
|
|
|
}
|