Created
June 15, 2012 15:20
-
-
Save GregSutcliffe/2936982 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Wrapper class to handle the parameterized classes needed | |
# by our infrastructure. | |
class puppetserver { | |
# 1st is prod server, 'default' is the dev server | |
case $::fqdn { | |
'puppetserver.office.etvinteractive.com': { | |
# Initialize the gitolite repo and puppet server | |
class { '::gitolite': | |
authfile => 'puppet:///modules/puppetserver/gitolite/production.conf', | |
keydir => 'puppet:///modules/puppetserver/gitolite/keydir', | |
}-> | |
class { '::puppet::server': | |
port => 23545, | |
agent_template => 'puppetagent/puppet.conf.core.erb', | |
master_template => 'puppetserver/puppet.conf.master.erb', | |
git_repo => true, | |
git_repo_path => '/var/lib/gitolite/repositories/puppet.git', | |
post_hook_name => 'post-receive.puppet', | |
} | |
} | |
default: { | |
class { '::gitolite': | |
authfile => 'puppet:///modules/puppetserver/gitolite/development.conf', | |
keydir => 'puppet:///modules/puppetserver/gitolite/keydir', | |
}-> | |
class { '::puppet::server': | |
agent_template => 'puppetagent/puppet.conf.core.erb', | |
git_repo => true, | |
git_repo_path => '/var/lib/gitolite/repositories/puppet.git', | |
post_hook_name => 'post-receive.puppet', | |
} | |
} | |
} | |
# Ensure gitolite can check out the code as 'puppet' | |
include sudo | |
sudo::directive { "gitolite": | |
ensure => present, | |
content => "gitolite ALL=(puppet) NOPASSWD: ALL | |
Defaults !env_reset\n", | |
} | |
# Need rbot for notifies | |
package { 'rbot': ensure => present } | |
# Puppet repo hooks | |
# Define the 'main' hook that runs the others specified in gitolite | |
file { "${puppet::server::git_repo_path}/hooks/post-receive": | |
content => template("puppetserver/post-hook.multi"), | |
mode => 0755, | |
} | |
# IRC hook | |
file { "${puppet::server::git_repo_path}/hooks/post-receive.irc": | |
content => template("puppetserver/post-hook.irc"), | |
mode => 0755, | |
} | |
# Manifest repo hooks | |
file { "${::gitolite::base}/repositories/manifests.git/hooks/post-receive": | |
content => template("puppetserver/post-hook.multi"), | |
mode => 0755, | |
} | |
file { "${::gitolite::base}/repositories/manifests.git/hooks/post-receive.puppet": | |
content => template("puppetserver/post-hook.manifests"), | |
mode => 0755, | |
} | |
file { "${::gitolite::base}/repositories/manifests.git/hooks/post-receive.irc": | |
content => template("puppetserver/post-hook.irc"), | |
mode => 0755, | |
} | |
# Hiera config | |
package { ["libmysql-ruby","libactiverecord-ruby1.8"]: ensure => installed } | |
package { "hiera": | |
ensure => installed, | |
provider => 'gem', | |
} | |
file { "/etc/puppet/hiera.yaml": | |
content => template("puppetserver/hiera.yaml") | |
} | |
# Tagmail config | |
file { "/etc/puppet/tagmail.conf": | |
ensure => "present", | |
content => "!blah: gsutcliffe@ibahn.com | |
dev: pcairns@ibahn.com", | |
} | |
# Stuff to be refactored later | |
file { | |
["/etc/puppet/bin","/etc/puppet/extdata"]: | |
ensure => directory, | |
recurse => true, | |
mode => 775, | |
owner => puppet, | |
group => puppet; | |
"/etc/puppet/extdata-git": | |
ensure => directory, | |
recurse => false, | |
mode => 775, | |
owner => puppet, | |
group => puppet; | |
"/etc/puppet/fileserver.conf": | |
ensure => present, | |
mode => 755, | |
source => "puppet:///modules/puppetserver/fileserver.conf"; | |
"/etc/puppet/bin/external_node": | |
ensure => present, | |
mode => 755, | |
require => File["/etc/puppet/bin"], | |
source => "puppet:///modules/puppetserver/external_node"; | |
"/etc/puppet/bin/kill_node_in_storeconfigs_db.rb": | |
ensure => present, | |
mode => 755, | |
require => File["/etc/puppet/bin"], | |
source => "puppet:///modules/puppetserver/kill_node_in_storeconfigs_db.rb"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment