Skip to content

Instantly share code, notes, and snippets.

@michaeltchapman
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michaeltchapman/f352a6319e78aabbf31e to your computer and use it in GitHub Desktop.
Save michaeltchapman/f352a6319e78aabbf31e to your computer and use it in GitHub Desktop.
prototype for generic yumrepo handling in openstack_extras
class openstack_extras::repo::redhat::redhat(
$release = 'icehouse',
$manage_rdo = true,
$repo_hash = {},
$repo_defaults = { 'enabled' => '1',
'gpgcheck' => '1',
'notify' => "Exec['yum_refresh']",
'mirrorlist' => 'absent',
'require' => "Anchor['openstack_extras_redhat']"
},
$gpgkey_hash = {},
$gpgkey_default = { 'owner' => 'root',
'group' => 'root',
'mode' => '0644',
'before' => "Anchor['openstack_extras_redhat']"
}
) {
if $manage_rdo {
$release_cap = capitalize($release)
case $::operatingsystem {
centos, redhat, scientific, slc: { $dist = 'epel' }
fedora: { $dist = 'fedora' }
default: {
warning('Unrecognised operatingsystem')
}
}
# $lsbmajdistrelease is only available with redhat-lsb installed
$osver = regsubst($::operatingsystemrelease, '(\d+)\..*', '\1')
$rdo_hash = { 'rdo-release' => {
'baseurl' => "http://repos.fedorapeople.org/repos/openstack/openstack-${release}/${dist}-${osver}/",
'descr' => "OpenStack ${release_cap} Repository",
'priority' => 98
}
}
$rdokey_hash = { "/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-${release_cap}" => {
'source' => "puppet:///modules/openstacklib/RPM-GPG-KEY-RDO-${release_cap}"
}
}
$yum_repos = merge($repo_hash, $rdo_hash)
$gpg_keys = merge($gpgkey_hash, $rdokey_hash)
} else {
$yum_repos = $repo_hash
$gpg_keys = $gpgkey_hash
}
create_resources('yumrepo', $yum_repos, $repo_defaults)
Anchor{ 'openstack_extras_redhat': }
create_resources('file', $gpg_keys, $gpgkey_default)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment