git.lirion.de

Of git, get, and gud

summaryrefslogtreecommitdiffstats
path: root/site/profile/manifests/puppetmaster.pp
diff options
context:
space:
mode:
Diffstat (limited to 'site/profile/manifests/puppetmaster.pp')
-rw-r--r--site/profile/manifests/puppetmaster.pp38
1 files changed, 38 insertions, 0 deletions
diff --git a/site/profile/manifests/puppetmaster.pp b/site/profile/manifests/puppetmaster.pp
index 7bd9bea..1b00bdf 100644
--- a/site/profile/manifests/puppetmaster.pp
+++ b/site/profile/manifests/puppetmaster.pp
@@ -11,4 +11,42 @@ class profile::puppetmaster {
group => 'root',
}
+ ##BEGIN - r10k webhook support
+ include r10k::mcollective
+
+ include r10k::webhook::config
+
+ class {'r10k::webhook':
+ user => 'root',
+ group => '0',
+ require => Class['r10k::webhook::config'],
+ }
+ ##END - r10k webhook support
+
+ #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 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',
+ server_url => hiera('gms_server_url'),
+ provider => $git_management_system,
+ }
+
+ }
+ #END - Add deploy key to git management system
+
}