puppet: support forcing plugin installation allowing us to install latest git-client plugin

Related to commit c73c341f ("puppet: install git-client plugin
explicitely in version 1.1.2"), instead of pinning the git-client plugin
to a specific version also install the latest versions of the ssh-agent
and credentials plugins and pin the credentials plugin so it doesn't
get restored/downgraded by Jenkins service itself.

Thanks stephenconnolly for the hint regarding the pinning trick.
See https://issues.jenkins-ci.org/browse/JENKINS-19927
remotes/origin/mika/jbb-multi
Michael Prokop 13 years ago
parent c73c341fcd
commit fd1ce1f1cc

@ -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'],
}

Loading…
Cancel
Save