diff --git a/puppet/jenkins_debian_glue.pp b/puppet/jenkins_debian_glue.pp index 64cd52e..2f0613e 100644 --- a/puppet/jenkins_debian_glue.pp +++ b/puppet/jenkins_debian_glue.pp @@ -1,6 +1,6 @@ # jenkins::plugin::install is based on rtyler's -# https://github.com/rtyler/puppet-jenkins/blob/master/manifests/plugin/install.pp -define jenkins::plugin::install($version=0) { +# https://github.com/jenkinsci/puppet-jenkins/blob/master/manifests/plugin.pp +define jenkins::plugin::install($version=0, $force=0) { $plugin = "${name}.hpi" $plugin_parent_dir = '/var/lib/jenkins' $plugin_dir = '/var/lib/jenkins/plugins' @@ -20,15 +20,27 @@ define jenkins::plugin::install($version=0) { } } - exec { "download-${name}" : - command => "wget --no-check-certificate ${base_url}${plugin}", - cwd => $plugin_dir, - require => File[$plugin_dir], - path => ['/usr/bin', '/usr/sbin',], - user => 'jenkins', - unless => "test -f ${plugin_dir}/${plugin}", - notify => Service['jenkins'], + if ($force != 0) { + exec { "download-${name}" : + command => "touch $plugin_dir/${name}.jpi.pinned; wget --no-check-certificate -O $plugin_dir/${name}.jpi ${base_url}${plugin}", + cwd => $plugin_dir, + require => File[$plugin_dir], + path => ['/usr/bin', '/usr/sbin',], + user => 'jenkins', + notify => Service['jenkins'], + } + } else { + exec { "download-${name}" : + command => "wget --no-check-certificate ${base_url}${plugin}", + cwd => $plugin_dir, + require => File[$plugin_dir], + path => ['/usr/bin', '/usr/sbin',], + user => 'jenkins', + unless => "test -f ${plugin_dir}/${plugin}", + notify => Service['jenkins'], + } } + } exec { 'apt-get_update': @@ -118,8 +130,13 @@ class jenkins::software { require => Package['jenkins'], } + # required for recent versions of ssh-agent + jenkins::plugin::install { 'credentials': + force => '1', # see https://issues.jenkins-ci.org/browse/JENKINS-19927 + require => Package['jenkins'], + } + jenkins::plugin::install { 'git-client': - version => '1.1.2', # see https://issues.jenkins-ci.org/browse/JENKINS-19927 require => Package['jenkins'], } @@ -127,6 +144,11 @@ class jenkins::software { require => Package['jenkins'], } + # required for recent versions of git-client + jenkins::plugin::install { 'ssh-agent': + require => Package['jenkins'], + } + jenkins::plugin::install { 'tap': require => Package['jenkins'], }