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:
parent
6116e612d5
commit
5991ee6a62
|
@ -13,7 +13,8 @@ class jenkins::master(
|
||||||
$jenkins_ssh_private_key = '',
|
$jenkins_ssh_private_key = '',
|
||||||
$jenkins_ssh_public_key = '',
|
$jenkins_ssh_public_key = '',
|
||||||
$jenkins_default = 'puppet:///modules/jenkins/jenkins.default',
|
$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 ::pip
|
||||||
include ::apt
|
include ::apt
|
||||||
|
@ -112,9 +113,40 @@ class jenkins::master(
|
||||||
ensure => present,
|
ensure => present,
|
||||||
}
|
}
|
||||||
|
|
||||||
package { 'jenkins':
|
# jenkins apt-repo doesn't offer multiple versions
|
||||||
ensure => $jenkins_version,
|
# so if anything other than 'present' or 'latest'
|
||||||
require => Apt::Source['jenkins'],
|
# 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':
|
exec { 'update apt cache':
|
||||||
|
|
Loading…
Reference in New Issue