Puppet Class: mongodb::repo
- Inherited by:
-
mongodb::repo::apt
mongodb::repo::yum
mongodb::repo::zypper
- Defined in:
- manifests/repo.pp
Overview
PRIVATE CLASS: do not use directly
2 3 4 5 6 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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'manifests/repo.pp', line 2
class mongodb::repo (
Variant[Enum['present', 'absent'], Boolean] $ensure = 'present',
Optional[String] $version = undef,
Boolean $use_enterprise_repo = false,
Optional[String] $repo_location = undef,
Optional[String] $proxy = undef,
Optional[String] $proxy_username = undef,
Optional[String] $proxy_password = undef,
Optional[String[1]] $aptkey_options = undef,
) {
case $facts['os']['family'] {
'RedHat', 'Linux': {
if $repo_location != undef {
$location = $repo_location
$description = 'MongoDB Custom Repository'
} elsif $version == undef or versioncmp($version, '3.0.0') < 0 {
fail('Package repositories for versions older than 3.0 are unsupported')
} else {
$mongover = split($version, '[.]')
if $use_enterprise_repo {
$location = "https://repo.mongodb.com/yum/redhat/\$releasever/mongodb-enterprise/${mongover[0]}.${mongover[1]}/\$basearch/"
$description = 'MongoDB Enterprise Repository'
} else {
$location = "https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/${mongover[0]}.${mongover[1]}/\$basearch/"
$description = 'MongoDB Repository'
}
}
contain mongodb::repo::yum
}
'Suse': {
if $repo_location {
$location = $repo_location
$description = 'MongoDB Custom Repository'
} elsif $version == undef or versioncmp($version, '3.2.0') < 0 {
fail('Package repositories for versions older than 3.2 are unsupported')
} else {
$mongover = split($version, '[.]')
$location = "https://repo.mongodb.org/zypper/suse/\$releasever_major/mongodb-org/${mongover[0]}.${mongover[1]}/\$basearch/"
$description = 'MongoDB Repository'
}
contain mongodb::repo::zypper
}
'Debian': {
if $repo_location != undef {
$location = $repo_location
} elsif $version == undef or versioncmp($version, '3.0.0') < 0 {
fail('Package repositories for versions older than 3.0 are unsupported')
} else {
if $use_enterprise_repo == true {
$repo_domain = 'repo.mongodb.com'
$repo_path = 'mongodb-enterprise'
} else {
$repo_domain = 'repo.mongodb.org'
$repo_path = 'mongodb-org'
}
$mongover = split($version, '[.]')
$location = $facts['os']['name'] ? {
'Debian' => "https://${repo_domain}/apt/debian",
'Ubuntu' => "https://${repo_domain}/apt/ubuntu",
default => undef
}
$release = "${facts['os']['distro']['codename']}/${repo_path}/${mongover[0]}.${mongover[1]}"
$repos = $facts['os']['name'] ? {
'Debian' => 'main',
'Ubuntu' => 'multiverse',
default => undef
}
$key = "${mongover[0]}.${mongover[1]}" ? {
'5.0' => 'F5679A222C647C87527C2F8CB00A0BD1E2C63C11',
'4.4' => '20691EEC35216C63CAF66CE1656408E390CFB1F5',
'4.2' => 'E162F504A20CDF15827F718D4B7C549A058F8B6B',
'4.0' => '9DA31620334BD75D9DCB49F368818C72E52529D4',
'3.6' => '2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5',
'3.4' => '0C49F3730359A14518585931BC711F9BA15703C6',
'3.2' => '42F3E95A2C4F08279C4960ADD68FA50FEA312927',
default => '492EAFE8CD016A07919F1D2B9ECBEC467F0CEB10'
}
$key_server = 'hkp://keyserver.ubuntu.com:80'
}
contain mongodb::repo::apt
}
default: {
if($ensure == 'present' or $ensure == true) {
fail("Unsupported managed repository for osfamily: ${facts['os']['family']}, operatingsystem: ${facts['os']['name']}, module ${module_name} currently only supports managing repos for osfamily RedHat, Suse, Debian and Ubuntu")
}
}
}
}
|