Puppet Class: bareos::repository
- Defined in:
- manifests/repository.pp
Overview
Class: bareos::repository
This class manages the bareos repository Parameters should be configured in the upper class ‘::bareos`.
This class will be automatically included when a resource is defined. It is not intended to be used directly by external resources like node definitions or other modules.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'manifests/repository.pp', line 7
class bareos::repository(
$release = 'latest'
) {
$url = "http://download.bareos.org/bareos/release/${release}/"
if versioncmp($::puppetversion, '4.0.0') >= 0 {
$os = $facts['os']['name']
$osrelease = $facts['os']['release']['full']
$osmajrelease = $facts['os']['release']['major']
} else {
$os = $::operatingsystem
$osrelease = $::operatingsystemrelease
$osmajrelease = $::operatingsystemmajrelease
}
case $os {
/(?i:redhat|centos|fedora)/: {
case $os {
'RedHat': {
$location = "${url}RHEL_${osmajrelease}"
}
'Centos': {
$location = "${url}CentOS_${osmajrelease}"
}
'Fedora': {
$location = "${url}Fedora_${osmajrelease}"
}
default: {
fail('Operatingsystem is not supported by this module')
}
}
yumrepo { 'bareos':
name => 'bareos',
baseurl => $location,
gpgcheck => '1',
gpgkey => "${location}repodata/repomd.xml.key",
priority => '1',
}
}
/(?i:debian|ubuntu)/: {
if $os == 'Ubuntu' {
unless $osrelease in ['12.04', '14.04', '16.04', '18.04'] {
fail('Only Ubunutu LTS Versions are supported')
}
$location = "${url}xUbuntu_${osrelease}"
} else {
$location = "${url}Debian_${osrelease}.0"
}
include ::apt
::apt::source { 'bareos':
location => $location,
release => '/',
repos => '',
key => {
id => '0143857D9CE8C2D182FE2631F93C028C093BFBA2',
source => "${location}/Release.key",
},
}
Apt::Source['bareos'] -> Package<|tag == 'bareos'|>
Class['Apt::Update'] -> Package<|tag == 'bareos'|>
}
default: {
fail('Operatingsystem is not supported by this module')
}
}
}
|