From cfb6d326f40c2ee79b5efc6905528de1df7432de Mon Sep 17 00:00:00 2001 From: Clark Boylan <clark.boylan@gmail.com> Date: Mon, 8 Oct 2012 18:29:01 -0700 Subject: [PATCH] Use puppetlabs apt repo and pin puppet version. In openstack_project::base use the Apt module to configure the upstream puppet labs apt repository and pin puppet to version 2.7.*. Change-Id: I0a09e02e3d26eb9452215e5bccef143487e9e58d Reviewed-on: https://review.openstack.org/14194 Approved: James E. Blair <corvus@inaugust.com> Reviewed-by: James E. Blair <corvus@inaugust.com> Tested-by: Jenkins --- install_jenkins_slave.sh | 7 ++++++ modules/jenkins/manifests/master.pp | 1 - modules/jenkins/manifests/slave.pp | 1 - .../openstack_project/files/00-puppet.pref | 3 +++ modules/openstack_project/manifests/base.pp | 25 ++++++++++++------- 5 files changed, 26 insertions(+), 11 deletions(-) create mode 100644 modules/openstack_project/files/00-puppet.pref diff --git a/install_jenkins_slave.sh b/install_jenkins_slave.sh index 9d8042cc78..4e5d22d26e 100755 --- a/install_jenkins_slave.sh +++ b/install_jenkins_slave.sh @@ -1,9 +1,16 @@ #!/bin/bash +cat > /etc/apt/preferences.d/00-puppet.pref <<EOF +Package: puppet puppet-common puppetmaster puppetmaster-common +Pin: version 2.7* +Pin-Priority: 501 +EOF + lsbdistcodename=`lsb_release -c -s` puppet_deb=puppetlabs-release-${lsbdistcodename}.deb wget http://apt.puppetlabs.com/$puppet_deb -O $puppet_deb dpkg -i $puppet_deb + apt-get update apt-get install -y puppet git rubygems diff --git a/modules/jenkins/manifests/master.pp b/modules/jenkins/manifests/master.pp index 957637e645..cce3636243 100644 --- a/modules/jenkins/manifests/master.pp +++ b/modules/jenkins/manifests/master.pp @@ -77,7 +77,6 @@ class jenkins::master( $packages = [ 'python-babel', - 'wget', ] package { $packages: diff --git a/modules/jenkins/manifests/slave.pp b/modules/jenkins/manifests/slave.pp index ac82bfe672..7f64051d30 100644 --- a/modules/jenkins/manifests/slave.pp +++ b/modules/jenkins/manifests/slave.pp @@ -41,7 +41,6 @@ class jenkins::slave($ssh_key, $sudo = false, $bare = false, $user = true) { "rubygems", "sqlite3", "unzip", - "wget", "xsltproc", # for building openstack docs "xvfb", # for selenium tests "pyflakes"] diff --git a/modules/openstack_project/files/00-puppet.pref b/modules/openstack_project/files/00-puppet.pref new file mode 100644 index 0000000000..f2c442da00 --- /dev/null +++ b/modules/openstack_project/files/00-puppet.pref @@ -0,0 +1,3 @@ +Package: puppet puppet-common puppetmaster puppetmaster-common +Pin: version 2.7* +Pin-Priority: 501 diff --git a/modules/openstack_project/manifests/base.pp b/modules/openstack_project/manifests/base.pp index e7786a6f51..cd70e50c41 100644 --- a/modules/openstack_project/manifests/base.pp +++ b/modules/openstack_project/manifests/base.pp @@ -2,6 +2,7 @@ class openstack_project::base( $certname = $::fqdn, $install_users = true ) { + include apt include openstack_project::users include sudoers @@ -14,7 +15,6 @@ class openstack_project::base( } if ($::lsbdistcodename == 'oneiric') { - include apt apt::ppa { 'ppa:git-core/ppa': } package { 'git': ensure => latest, @@ -29,6 +29,7 @@ class openstack_project::base( $packages = [ 'puppet', 'python-setuptools', + 'wget', ] package { $packages: @@ -57,15 +58,21 @@ class openstack_project::base( ) } - # Download and set up puppet apt repo - exec { "download:puppetlabs-release-$::{lsbdistcodename}.deb": - command => "/usr/bin/wget http://apt.puppetlabs.com/puppetlabs-release-$::{lsbdistcodename}.deb -O /root/puppetlabs-release-$::{lsbdistcodename}.deb", - creates => "/root/puppetlabs-release-$::{lsbdistcodename}.deb", + # Use upstream puppet and pin to version 2.7.* + apt::source { 'puppetlabs': + location => 'http://apt.puppetlabs.com', + repos => 'main', + key => '4BD6EC30', + key_server => 'pgp.mit.edu', } - exec { "dpkg:puppetlabs-release-$::{lsbdistcodename}.deb": - command => "/usr/bin/dpkg -i /root/puppetlabs-release-$::{lsbdistcodename}.deb", - onlyif => '/usr/bin/test ! -f /etc/apt/sources.list.d/puppetlabs.list', - require => Exec["download:puppetlabs-release-$::{lsbdistcodename}.deb"], + + file { '/etc/apt/preferences.d/00-puppet.pref': + ensure => present, + owner => 'root', + group => 'root', + mode => '0444', + source => 'puppet:///modules/openstack_project/00-puppet.pref', + replace => true, } file { '/etc/puppet/puppet.conf':