diff options
author | mail_redacted_for_web | 2015-11-25 10:29:54 -0600 |
---|---|---|
committer | mail_redacted_for_web | 2015-11-25 10:29:54 -0600 |
commit | 10732cf3700bce033091fc3d0e1e5d9bb643932d (patch) | |
tree | 5b56538eb00a066503c4b32ac00a961036bbb220 /site/profile/manifests | |
parent | 869a5c3aa974b53e2f7f4c8fd8ab01fab0420f6d (diff) | |
parent | 1fd5334441f1f767154ffc28ea04c7cf8fec6611 (diff) | |
download | control-repo-template-10732cf3700bce033091fc3d0e1e5d9bb643932d.tar.bz2 |
Merge pull request #4 from npwalker/merge_npwalker_control_repo
Merge npwalker/control-repo in puppetlabs/control-repo
Diffstat (limited to 'site/profile/manifests')
-rw-r--r-- | site/profile/manifests/base.pp | 5 | ||||
-rw-r--r-- | site/profile/manifests/gitlab.pp | 24 | ||||
-rw-r--r-- | site/profile/manifests/puppetmaster.pp | 73 | ||||
-rw-r--r-- | site/profile/manifests/stash.pp | 28 | ||||
-rw-r--r-- | site/profile/manifests/zack_r10k_webhook.pp | 29 |
5 files changed, 159 insertions, 0 deletions
diff --git a/site/profile/manifests/base.pp b/site/profile/manifests/base.pp new file mode 100644 index 0000000..ae85e65 --- /dev/null +++ b/site/profile/manifests/base.pp @@ -0,0 +1,5 @@ +class profile::base { + + #the base profile should include component modules that will be on all nodes + +} diff --git a/site/profile/manifests/gitlab.pp b/site/profile/manifests/gitlab.pp new file mode 100644 index 0000000..72c57e5 --- /dev/null +++ b/site/profile/manifests/gitlab.pp @@ -0,0 +1,24 @@ +class profile::gitlab { + + file { ['/etc/gitlab', '/etc/gitlab/ssl'] : + ensure => directory, + } + + file { "/etc/gitlab/ssl/${::fqdn}.key" : + ensure => file, + source => "${::settings::privatekeydir}/${::trusted['certname']}.pem", + notify => Exec['gitlab_reconfigure'], + } + + file { "/etc/gitlab/ssl/${::fqdn}.crt" : + ensure => file, + source => "${::settings::certdir}/${::trusted['certname']}.pem", + notify => Exec['gitlab_reconfigure'], + } + + class { 'gitlab': + external_url => hiera( 'gms_server_url', "https://${::fqdn}") , + require => File["/etc/gitlab/ssl/${::fqdn}.key", "/etc/gitlab/ssl/${::fqdn}.key"], + } + +} diff --git a/site/profile/manifests/puppetmaster.pp b/site/profile/manifests/puppetmaster.pp new file mode 100644 index 0000000..0954807 --- /dev/null +++ b/site/profile/manifests/puppetmaster.pp @@ -0,0 +1,73 @@ +class profile::puppetmaster ( + $webhook_username, + $webhook_password +) { + + class { 'hiera': + hierarchy => [ + 'virtual/%{::virtual}', + 'nodes/%{::trusted.certname}', + 'common', + ], + hiera_yaml => '/etc/puppetlabs/code/hiera.yaml', + datadir => '/etc/puppetlabs/code/environments/%{environment}/hieradata', + owner => 'pe-puppet', + group => 'pe-puppet', + notify => Service['pe-puppetserver'], + } + + #BEGIN - Generate an SSH key for r10k to connect to git + $r10k_ssh_key_file = '/root/.ssh/r10k_rsa' + exec { 'create r10k ssh key' : + command => "/usr/bin/ssh-keygen -t rsa -b 2048 -C 'r10k' -f ${r10k_ssh_key_file} -q -N ''", + creates => $r10k_ssh_key_file, + } + #END - Generate an SSH key for r10k to connect to git + + #BEGIN - Add deploy key and webook to git management system + $git_management_system = hiera('git_management_system', '') + + if $git_management_system in ['gitlab', 'github'] { + + git_deploy_key { "add_deploy_key_to_puppet_control-${::fqdn}": + ensure => present, + name => $::fqdn, + path => "${r10k_ssh_key_file}.pub", + token => hiera('gms_api_token'), + project_name => 'puppet/control-repo', + server_url => hiera('gms_server_url'), + provider => $git_management_system, + } + + git_webhook { "web_post_receive_webhook-${::fqdn}" : + ensure => present, + webhook_url => "https://${webhook_username}:${webhook_password}@${::fqdn}:8088/payload", + token => hiera('gms_api_token'), + project_name => 'puppet/control-repo', + server_url => hiera('gms_server_url'), + provider => $git_management_system, + disable_ssl_verify => true, + } + + } + #END - Add deploy key and webhook to git management system + + #Lay down update-classes.sh for use in r10k postrun_command + #This is configured via the pe_r10k::postrun key in hiera + file { '/usr/local/bin/update-classes.sh' : + ensure => file, + source => 'puppet:///modules/profile/puppetmaster/update-classes.sh', + mode => '0755', + } + + #https://docs.puppetlabs.com/puppet/latest/reference/config_file_environment.html#environmenttimeout + ini_setting { 'environment_timeout = unlimited': + ensure => present, + path => '/etc/puppetlabs/puppet/puppet.conf', + section => 'main', + setting => 'environment_timeout', + value => 'unlimited', + notify => Service['pe-puppetserver'], + } + +} diff --git a/site/profile/manifests/stash.pp b/site/profile/manifests/stash.pp new file mode 100644 index 0000000..18b0468 --- /dev/null +++ b/site/profile/manifests/stash.pp @@ -0,0 +1,28 @@ +class profile::stash { + + class { 'java' : + version => present, + } -> + + class { 'postgresql::globals': + manage_package_repo => true, + version => '9.4', + }-> + class { 'postgresql::server': } -> + + postgresql::server::db { 'stash': + user => 'stash', + password => postgresql_password('stash', 'password'), + } -> + + class { 'stash': + javahome => '/etc/alternatives/java_sdk', + #dev.mode grants a 24-hour license for testing + java_opts => '-Datlassian.dev.mode=true', + } + + file { '/opt/puppetlabs/bin/stash_mco.rb': + source => 'puppet:///modules/r10k/stash_mco.rb', + } + +} diff --git a/site/profile/manifests/zack_r10k_webhook.pp b/site/profile/manifests/zack_r10k_webhook.pp new file mode 100644 index 0000000..7e0bd40 --- /dev/null +++ b/site/profile/manifests/zack_r10k_webhook.pp @@ -0,0 +1,29 @@ +class profile::zack_r10k_webhook ( + $username, + $password, + $use_mcollective = false, +) { + + if $use_mcollective { + + class { 'r10k::mcollective': + notify => Service['mcollective'], + } + + } + + class {'r10k::webhook::config': + enable_ssl => true, + protected => true, + user => $username, + pass => $password, + use_mcollective => $use_mcollective, + } + + class {'r10k::webhook': + user => 'root', + group => '0', + require => Class['r10k::webhook::config'], + } + +} |