Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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";
- }
- }
Add Comment
Please, Sign In to add comment