Guest User

Untitled

a guest
Oct 20th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. # Wrapper class to handle the parameterized classes needed
  2. # by our infrastructure.
  3. class puppetserver {
  4.  
  5. # 1st is prod server, 'default' is the dev server
  6. case $::fqdn {
  7. 'puppetserver.office.etvinteractive.com': {
  8. # Initialize the gitolite repo and puppet server
  9. class { '::gitolite':
  10. authfile => 'puppet:///modules/puppetserver/gitolite/production.conf',
  11. keydir => 'puppet:///modules/puppetserver/gitolite/keydir',
  12. }->
  13. class { '::puppet::server':
  14. port => 23545,
  15. agent_template => 'puppetagent/puppet.conf.core.erb',
  16. master_template => 'puppetserver/puppet.conf.master.erb',
  17. git_repo => true,
  18. git_repo_path => '/var/lib/gitolite/repositories/puppet.git',
  19. post_hook_name => 'post-receive.puppet',
  20. }
  21. }
  22. default: {
  23. class { '::gitolite':
  24. authfile => 'puppet:///modules/puppetserver/gitolite/development.conf',
  25. keydir => 'puppet:///modules/puppetserver/gitolite/keydir',
  26. }->
  27. class { '::puppet::server':
  28. agent_template => 'puppetagent/puppet.conf.core.erb',
  29. git_repo => true,
  30. git_repo_path => '/var/lib/gitolite/repositories/puppet.git',
  31. post_hook_name => 'post-receive.puppet',
  32. }
  33. }
  34. }
  35.  
  36. # Ensure gitolite can check out the code as 'puppet'
  37. include sudo
  38. sudo::directive { "gitolite":
  39. ensure => present,
  40. content => "gitolite ALL=(puppet) NOPASSWD: ALL
  41. Defaults !env_reset\n",
  42. }
  43.  
  44. # Need rbot for notifies
  45. package { 'rbot': ensure => present }
  46.  
  47. # Puppet repo hooks
  48.  
  49. # Define the 'main' hook that runs the others specified in gitolite
  50. file { "${puppet::server::git_repo_path}/hooks/post-receive":
  51. content => template("puppetserver/post-hook.multi"),
  52. mode => 0755,
  53. }
  54. # IRC hook
  55. file { "${puppet::server::git_repo_path}/hooks/post-receive.irc":
  56. content => template("puppetserver/post-hook.irc"),
  57. mode => 0755,
  58. }
  59.  
  60. # Manifest repo hooks
  61. file { "${::gitolite::base}/repositories/manifests.git/hooks/post-receive":
  62. content => template("puppetserver/post-hook.multi"),
  63. mode => 0755,
  64. }
  65. file { "${::gitolite::base}/repositories/manifests.git/hooks/post-receive.puppet":
  66. content => template("puppetserver/post-hook.manifests"),
  67. mode => 0755,
  68. }
  69. file { "${::gitolite::base}/repositories/manifests.git/hooks/post-receive.irc":
  70. content => template("puppetserver/post-hook.irc"),
  71. mode => 0755,
  72. }
  73.  
  74. # Hiera config
  75. package { ["libmysql-ruby","libactiverecord-ruby1.8"]: ensure => installed }
  76. package { "hiera":
  77. ensure => installed,
  78. provider => 'gem',
  79. }
  80. file { "/etc/puppet/hiera.yaml":
  81. content => template("puppetserver/hiera.yaml")
  82. }
  83.  
  84. # Tagmail config
  85. file { "/etc/puppet/tagmail.conf":
  86. ensure => "present",
  87. content => "!blah: gsutcliffe@ibahn.com
  88. dev: pcairns@ibahn.com",
  89. }
  90.  
  91. # Stuff to be refactored later
  92.  
  93. file {
  94. ["/etc/puppet/bin","/etc/puppet/extdata"]:
  95. ensure => directory,
  96. recurse => true,
  97. mode => 775,
  98. owner => puppet,
  99. group => puppet;
  100. "/etc/puppet/extdata-git":
  101. ensure => directory,
  102. recurse => false,
  103. mode => 775,
  104. owner => puppet,
  105. group => puppet;
  106. "/etc/puppet/fileserver.conf":
  107. ensure => present,
  108. mode => 755,
  109. source => "puppet:///modules/puppetserver/fileserver.conf";
  110. "/etc/puppet/bin/external_node":
  111. ensure => present,
  112. mode => 755,
  113. require => File["/etc/puppet/bin"],
  114. source => "puppet:///modules/puppetserver/external_node";
  115. "/etc/puppet/bin/kill_node_in_storeconfigs_db.rb":
  116. ensure => present,
  117. mode => 755,
  118. require => File["/etc/puppet/bin"],
  119. source => "puppet:///modules/puppetserver/kill_node_in_storeconfigs_db.rb";
  120. }
  121.  
  122. }
Add Comment
Please, Sign In to add comment