Ported repository installation from puppet-openstack

Ported repository installation from puppet-openstack. Added
error handling for invalid repositories. Using stahnma/epel
to manage EPEL installation EPEL 7. Set repository default
to 'icehouse'.

Change-Id: I6fdbaf1ee59186aba4d2d5945c9297fb5ef94cbb
This commit is contained in:
Chris Hoge 2014-07-17 15:50:46 -07:00
parent 97915e0512
commit b0b83dbf45
12 changed files with 578 additions and 0 deletions

View File

@ -1,3 +1,7 @@
fixtures: fixtures:
repositories:
'apt': 'git://github.com/puppetlabs/puppetlabs-apt.git'
'stdlib': 'git://github.com/puppetlabs/puppetlabs-stdlib.git'
'epel': 'git://github.com/stahnma/puppet-module-epel.git'
symlinks: symlinks:
'openstack_extras': "#{source_dir}" 'openstack_extras': "#{source_dir}"

View File

@ -6,3 +6,8 @@ license 'Apache License 2.0'
summary 'Puppet OpenStack Extras Module' summary 'Puppet OpenStack Extras Module'
description 'Puppet module to add useful utilities for OpenStack deployments' description 'Puppet module to add useful utilities for OpenStack deployments'
project_page 'https://launchpad.net/puppet-openstack_extras' project_page 'https://launchpad.net/puppet-openstack_extras'
## Dependencies
dependency 'puppetlabs/apt', '>=1.0.0 <2.0.0'
dependency 'puppetlabs/stdlib,' '>=4.0.0 <5.0.0'
dependency 'stahnma/epel', '<1.0.0'

View File

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
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
kHVKhYA=
=F6XX
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
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
WRhdyg==
=3A9V
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
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
5KmnPi+m
=6cHR
-----END PGP PUBLIC KEY BLOCK-----

34
manifests/repo.pp Normal file
View File

@ -0,0 +1,34 @@
#
# Sets up the package repos necessary to use OpenStack
# on RHEL-alikes and Ubuntu
#
# === parameters
#
# [*release*]
# The OpenStack release name. Options are 'icehouse', 'havana',
# 'grizzly', or 'folsom'.
# Defaults to 'icehouse'.
#
class openstack_extras::repo(
$release = 'icehouse'
) {
case $release {
'icehouse', 'havana', 'grizzly': {
if $::osfamily == 'RedHat' {
class {'openstack_extras::repo::rdo': release => $release }
} elsif $::operatingsystem == 'Ubuntu' {
class {'openstack_extras::repo::uca': release => $release }
}
}
'folsom': {
if $::osfamily == 'RedHat' {
include ::epel
} elsif $::operatingsystem == 'Ubuntu' {
class {'openstack_extras::repo::uca': release => $release }
}
}
default: {
notify { "WARNING: openstack_repo::repo parameter 'release' of '${release}' not recognized; please use one of 'icehouse', 'havana', 'grizzly' or 'folsom'.": }
}
}
}

52
manifests/repo/rdo.pp Normal file
View File

@ -0,0 +1,52 @@
# RDO repo
# Supports both RHEL-alikes and Fedora, requires EPEL non-Fedora
#
# === Parameters
# [*release*]
# The OpenStack release to target. Valid options are 'grizzly',
# 'havana' and 'icehouse'.
# Defaults to 'icehouse'.
#
class openstack_extras::repo::rdo(
$release = 'icehouse'
) {
$supported_releases = [ 'grizzly', 'havana', 'icehouse' ]
if member($supported_releases, $release) {
$release_cap = capitalize($release)
case $::operatingsystem {
centos, redhat, scientific, slc: {
$dist = 'epel'
include ::epel
}
fedora: { $dist = 'fedora' }
default: {
fail("Unrecognised operatingsystem ${::operatingsystem}")
}
}
# $lsbmajdistrelease is only available with redhat-lsb installed
$osver = regsubst($::operatingsystemrelease, '(\d+)\..*', '\1')
yumrepo { 'rdo-release':
baseurl => "http://repos.fedorapeople.org/repos/openstack/openstack-${release}/${dist}-${osver}/",
descr => "OpenStack ${release_cap} Repository",
enabled => 1,
gpgcheck => 1,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-${release_cap}",
priority => 98,
notify => Exec['yum_refresh'],
}
file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-${release_cap}":
source => "puppet:///modules/openstack_extras/RPM-GPG-KEY-RDO-${release_cap}",
owner => root,
group => root,
mode => '0644',
before => Yumrepo['rdo-release'],
}
Yumrepo['rdo-release'] -> Package<||>
} else {
fail("${release} is not a supported RDO release. Options are ${supported_releases}.")
}
}

39
manifests/repo/uca.pp Normal file
View File

@ -0,0 +1,39 @@
# Ubuntu Cloud Archive Repository
#
# === parameters
#
# [*release*]
# The OpenStack release. Supported options are
# 'folsom', 'grizzly', 'havana', and 'icehouse'.
# Default is 'icehouse'.
#
# [*repo*]
# The UCS repository to pull from. Current supported
# options are 'proposed' and 'updates'.
# Default is 'updates'.
class openstack_extras::repo::uca(
$release = 'icehouse',
$repo = 'updates',
$exec_apt_update = true
) {
$supported_releases = ['folsom', 'grizzly', 'havana', 'icehouse']
if member($supported_releases, $release) {
if ($::operatingsystem == 'Ubuntu' and
$::lsbdistdescription =~ /^.*12\.04.*LTS.*$/) {
include apt::update
apt::source { 'ubuntu-cloud-archive':
location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
release => "${::lsbdistcodename}-${repo}/${release}",
repos => 'main',
required_packages => 'ubuntu-cloud-keyring',
}
Exec['apt_update'] -> Package<||>
}
} else {
fail("${release} is not a supported UCA release. Options are ${supported_releases}.")
}
}

View File

@ -0,0 +1,9 @@
# Refreshes the yum database after adding repositories and
# before installing packages.
class openstack_extras::repo::yum_refresh {
exec { 'yum_refresh':
command => '/usr/bin/yum clean all',
refreshonly => true,
}
Exec['yum_refresh'] -> Package<||>
}

View File

@ -0,0 +1,38 @@
require 'spec_helper'
describe 'openstack_extras::repo::rdo' do
describe 'Fedora and folsom' do
let :params do
{ :release => 'folsom' }
end
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'Fedora',
:operatingsystemrelease => '18',
}
end
it 'should fail if invalid release is passed' do
expect { subject }.to raise_error(Puppet::Error, /is not a supported RDO release/)
end
end
describe 'RHEL and folsom' do
let :params do
{ :release => 'folsom' }
end
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'CentOS',
:operatingsystemrelease => '6.4',
}
end
it 'should fail if invalid release is passed' do
expect { subject }.to raise_error(Puppet::Error, /is not a supported RDO release/)
end
end
end

View File

@ -0,0 +1,173 @@
require 'spec_helper'
describe 'openstack_extras::repo' do
describe 'RHEL and icehouse' do
let :params do
{ :release => 'icehouse' }
end
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'CentOS',
:operatingsystemrelease => '6.4',
}
end
it do
should contain_yumrepo('rdo-release').with(
:baseurl => 'http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/epel-6/'
)
should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse')
should contain_class('epel')
end
end
describe 'RHEL and havana' do
let :params do
{ :release => 'havana' }
end
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'CentOS',
:operatingsystemrelease => '6.4',
}
end
it do
should contain_yumrepo('rdo-release').with(
:baseurl => 'http://repos.fedorapeople.org/repos/openstack/openstack-havana/epel-6/'
)
should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Havana')
should contain_class('epel')
end
end
describe 'RHEL and grizzly' do
let :params do
{ :release => 'grizzly' }
end
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'CentOS',
:operatingsystemrelease => '6.4',
}
end
it do
should contain_yumrepo('rdo-release').with(
:baseurl => 'http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/epel-6/'
)
should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Grizzly')
should contain_class('epel')
end
end
describe 'Fedora and icehouse' do
let :params do
{ :release => 'icehouse' }
end
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'Fedora',
:operatingsystemrelease => '18',
}
end
it do
should contain_yumrepo('rdo-release').with(
:baseurl => 'http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/fedora-18/'
)
should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse')
end
end
describe 'Fedora and havana' do
let :params do
{ :release => 'havana' }
end
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'Fedora',
:operatingsystemrelease => '18',
}
end
it do
should contain_yumrepo('rdo-release').with(
:baseurl => 'http://repos.fedorapeople.org/repos/openstack/openstack-havana/fedora-18/'
)
should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Havana')
end
end
describe 'Fedora and grizzly' do
let :params do
{ :release => 'grizzly' }
end
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'Fedora',
:operatingsystemrelease => '18',
}
end
it do
should contain_yumrepo('rdo-release').with(
:baseurl => 'http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/fedora-18/'
)
should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Grizzly')
end
end
describe 'Ubuntu and havana' do
let :params do
{ :release => 'havana' }
end
let :facts do
{
:osfamily => 'Debian',
:operatingsystem => 'Ubuntu',
:operatingsystemrelease => '12.04',
:lsbdistdescription => 'Ubuntu 12.04.1 LTS',
:lsbdistcodename => 'precise',
:lsbdistid => 'ubuntu',
}
end
it do
should contain_apt__source('ubuntu-cloud-archive').with_release('precise-updates/havana')
end
end
describe 'Ubuntu and grizzly' do
let :params do
{ :release => 'grizzly' }
end
let :facts do
{
:osfamily => 'Debian',
:operatingsystem => 'Ubuntu',
:operatingsystemrelease => '12.04',
:lsbdistdescription => 'Ubuntu 12.04.1 LTS',
:lsbdistcodename => 'precise',
:lsbdistid => 'ubuntu',
}
end
it do
should contain_apt__source('ubuntu-cloud-archive').with_release('precise-updates/grizzly')
end
end
end

View File

@ -0,0 +1,68 @@
require 'spec_helper'
describe 'openstack_extras::repo::uca' do
describe 'Ubuntu with defaults' do
let :facts do
{
:osfamily => 'Debian',
:operatingsystem => 'Ubuntu',
:operatingsystemrelease => '12.04',
:lsbdistdescription => 'Ubuntu 12.04.1 LTS',
:lsbdistcodename => 'precise',
:lsbdistid => 'ubuntu',
}
end
it do
should contain_apt__source('ubuntu-cloud-archive').with(
:release => 'precise-updates/icehouse'
)
end
end
describe 'Ubuntu and grizzly' do
let :params do
{ :release => 'grizzly', :repo => 'proposed' }
end
let :facts do
{
:osfamily => 'Debian',
:operatingsystem => 'Ubuntu',
:operatingsystemrelease => '12.04',
:lsbdistdescription => 'Ubuntu 12.04.1 LTS',
:lsbdistcodename => 'precise',
:lsbdistid => 'ubuntu',
}
end
it do
should contain_apt__source('ubuntu-cloud-archive').with(
:release => 'precise-proposed/grizzly'
)
end
end
describe 'Ubuntu and bexar' do
let :params do
{ :release => 'bexar',
:repo => 'proposed' }
end
let :facts do
{
:osfamily => 'Debian',
:operatingsystem => 'Ubuntu',
:operatingsystemrelease => '12.04',
:lsbdistdescription => 'Ubuntu 12.04.1 LTS',
:lsbdistcodename => 'precise',
:lsbdistid => 'ubuntu',
}
end
it 'should fail if invalid release is passed' do
expect { subject }.to raise_error(Puppet::Error, /is not a supported UCA release/)
end
end
end