diff --git a/manifests/jenkinsuser.pp b/manifests/jenkinsuser.pp index dfc70cf..62f4935 100644 --- a/manifests/jenkinsuser.pp +++ b/manifests/jenkinsuser.pp @@ -6,6 +6,8 @@ class jenkins::jenkinsuser( $gitfullname = 'OpenStack Jenkins', $gitemail = 'jenkins@openstack.org', $gerrituser = 'jenkins', + $gerritkeytype = 'rsa', + $gerritkey = undef, ) { group { 'jenkins': @@ -65,6 +67,17 @@ class jenkins::jenkinsuser( require => File['/home/jenkins/.ssh'], } + if $gerritkey != undef { + file { "/home/jenkins/.ssh/id_${gerritkeytype}": + ensure => 'file', + owner => 'jenkins', + group => 'jenkins', + mode => '0600', + content => $gerritkey, + require => File['/home/jenkins/.ssh'], + } + } + #NOTE: not all distributions have default bash files in /etc/skel if ($::osfamily == 'Debian') { diff --git a/manifests/slave.pp b/manifests/slave.pp index 9c7ebd9..5803488 100644 --- a/manifests/slave.pp +++ b/manifests/slave.pp @@ -6,6 +6,8 @@ class jenkins::slave( $gitfullname = 'OpenStack Jenkins', $gitemail = 'jenkins@openstack.org', $gerrituser = 'jenkins', + $gerritkeytype = 'rsa', + $gerritkey = undef, ) { include ::haveged @@ -14,11 +16,13 @@ class jenkins::slave( if ($user == true) { class { '::jenkins::jenkinsuser': - ensure => present, - ssh_key => $ssh_key, - gitfullname => $gitfullname, - gitemail => $gitemail, - gerrituser => $gerrituser, + ensure => present, + ssh_key => $ssh_key, + gitfullname => $gitfullname, + gitemail => $gitemail, + gerrituser => $gerrituser, + gerritkeytype => $gerritkeytype, + gerritkey => $gerritkey, } }