Enable a specific version of jenkins to be installed

This is an update to https://review.openstack.org/#/c/354086/ so
that puppet uses the dpkg provider with puppet archive to download & install a
specific version of jenkins if jenkins_version isn't set to latest or
present.

Change-Id: I054b27b045e97c39f0706d110c05459e6b9d74a1
This commit is contained in:
Simon McCartney 2016-09-07 15:50:44 +01:00 committed by Ramy Asselin
parent 6116e612d5
commit 5991ee6a62
1 changed files with 36 additions and 4 deletions

View File

@ -13,7 +13,8 @@ class jenkins::master(
$jenkins_ssh_private_key = '',
$jenkins_ssh_public_key = '',
$jenkins_default = 'puppet:///modules/jenkins/jenkins.default',
$jenkins_version = present,
$jenkins_version = 'present',
$jenkins_deb_url_base = 'http://pkg.jenkins.io/debian/binary',
) {
include ::pip
include ::apt
@ -112,9 +113,40 @@ class jenkins::master(
ensure => present,
}
package { 'jenkins':
ensure => $jenkins_version,
require => Apt::Source['jenkins'],
# jenkins apt-repo doesn't offer multiple versions
# so if anything other than 'present' or 'latest'
# is set, pull down the .deb using wget
# and install via the dpkg resource
if ($jenkins_version == 'present') or
($jenkins_version == 'latest')
{
package { 'jenkins':
ensure => $jenkins_version,
require => Apt::Source['jenkins'],
}
} else {
$jenkins_deb = "jenkins_${jenkins_version}_all.deb"
$jenkins_deb_url = "${jenkins_deb_url_base}/${jenkins_deb}"
$jenkins_deb_tmp = "/var/tmp/${jenkins_deb}"
archive { 'jenkins_deb':
source => $jenkins_deb_url,
path => $jenkins_deb_tmp,
}
# required by jenkins.deb, but as we're not using apt,
# no dependency resolution is performed.
package { 'daemon': }
package { 'jenkins':
# for the dpkg provider, latest means check the version,
# installed/present skips the version check, we want to version
# check so that we can move between versions using puppet
ensure => latest,
provider => dpkg,
source => $jenkins_deb_tmp,
require => [Package['daemon'], Archive['jenkins_deb']],
}
}
exec { 'update apt cache':