Skip to content

Commit 0321327

Browse files
committed
fix: correct official repo
In 2024 RabbitMQ's PackageCloud repository has been discontinued in favor of Cloudsmith Kudos to @corporate-gadfly for Hiera.
1 parent b63f9fc commit 0321327

17 files changed

Lines changed: 2896 additions & 2800 deletions

data/family/Debian.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
rabbitmq::python_package: 'python3'
33
rabbitmq::package_name: 'rabbitmq-server'
44
rabbitmq::service_name: 'rabbitmq-server'
5-
rabbitmq::package_gpg_key: 'https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey'
5+
rabbitmq::package_gpg_key: 'https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA'

data/family/RedHat.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
rabbitmq::package_name: 'rabbitmq-server'
33
rabbitmq::service_name: 'rabbitmq-server'
4-
rabbitmq::package_gpg_key: 'https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc'
5-
rabbitmq::repo_gpg_key: 'https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey'
4+
rabbitmq::rpm_repo_primary_gpg_key: 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc'
5+
rabbitmq::rpm_repo_erlang_gpg_key: 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key'
6+
rabbitmq::rpm_repo_server_gpg_key: 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key'

files/rabbitmq.repo

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
##
2+
## Zero dependency Erlang RPM
3+
##
4+
5+
[modern-erlang]
6+
name=modern-erlang-el9
7+
# Use a set of mirrors maintained by the RabbitMQ core team.
8+
# The mirrors have significantly higher bandwidth quotas.
9+
baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
10+
https://yum2.rabbitmq.com/erlang/el/9/$basearch
11+
repo_gpgcheck=1
12+
enabled=1
13+
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
14+
gpgcheck=1
15+
sslverify=1
16+
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
17+
metadata_expire=300
18+
pkg_gpgcheck=1
19+
autorefresh=1
20+
type=rpm-md
21+
22+
[modern-erlang-noarch]
23+
name=modern-erlang-el9-noarch
24+
# Use a set of mirrors maintained by the RabbitMQ core team.
25+
# The mirrors have significantly higher bandwidth quotas.
26+
baseurl=https://yum1.rabbitmq.com/erlang/el/9/noarch
27+
https://yum2.rabbitmq.com/erlang/el/9/noarch
28+
repo_gpgcheck=1
29+
enabled=1
30+
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
31+
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
32+
gpgcheck=1
33+
sslverify=1
34+
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
35+
metadata_expire=300
36+
pkg_gpgcheck=1
37+
autorefresh=1
38+
type=rpm-md
39+
40+
41+
##
42+
## RabbitMQ Server
43+
##
44+
45+
[rabbitmq-el9]
46+
name=rabbitmq-el9
47+
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/$basearch
48+
https://yum1.rabbitmq.com/rabbitmq/el/9/$basearch
49+
repo_gpgcheck=1
50+
enabled=1
51+
# Cloudsmith's repository key and RabbitMQ package signing key
52+
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
53+
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
54+
gpgcheck=1
55+
sslverify=1
56+
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
57+
metadata_expire=300
58+
pkg_gpgcheck=1
59+
autorefresh=1
60+
type=rpm-md
61+
62+
[rabbitmq-el9-noarch]
63+
name=rabbitmq-el9-noarch
64+
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
65+
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
66+
repo_gpgcheck=1
67+
enabled=1
68+
# Cloudsmith's repository key and RabbitMQ package signing key
69+
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
70+
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
71+
gpgcheck=1
72+
sslverify=1
73+
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
74+
metadata_expire=300
75+
pkg_gpgcheck=1
76+
autorefresh=1
77+
type=rpm-md

manifests/init.pp

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,31 @@
393393
# This option configures a list of users to allow access via the loopback interfaces
394394
#
395395
class rabbitmq (
396+
# ---------------------------------- INSTALL --------------------------------- #
397+
Boolean $enable_centos_release = false,
398+
Boolean $enable_rabbitmq_repository = true,
399+
String $package_ensure = 'installed',
400+
401+
Optional[String[1]] $rpm_repo_primary_gpg_key = undef,
402+
Optional[String[1]] $rpm_repo_erlang_gpg_key = undef,
403+
Optional[String[1]] $rpm_repo_server_gpg_key = undef,
404+
405+
406+
407+
Optional[String] $deb_repo_gpg_key = undef,
408+
Optional[Variant[Numeric, String[1]]] $package_apt_pin = undef,
409+
410+
Variant[String, Array] $package_name = 'rabbitmq',
411+
Optional[String] $package_source = undef,
412+
Optional[String] $package_provider = undef,
413+
Boolean $manage_python = true,
414+
String $python_package = 'python',
415+
Enum['running', 'stopped'] $service_ensure = 'running',
416+
Boolean $service_manage = true,
417+
String $service_name = 'rabbitmq',
418+
String $rabbitmq_user = 'rabbitmq',
419+
String $rabbitmq_group = 'rabbitmq',
420+
# ---------------------------------- CONFIG ---------------------------------- #
396421
Boolean $admin_enable = true,
397422
Boolean $management_enable = false,
398423
Boolean $use_config_file_for_plugins = false,
@@ -411,7 +436,6 @@
411436
String $default_user = 'guest',
412437
String $default_pass = 'guest',
413438
Boolean $delete_guest_user = false,
414-
Boolean $enable_centos_release = false,
415439
String $env_config = 'rabbitmq/rabbitmq-env.conf.epp',
416440
Stdlib::Absolutepath $env_config_path = '/etc/rabbitmq/rabbitmq-env.conf',
417441
Optional[String] $erlang_cookie = undef,
@@ -421,34 +445,19 @@
421445
Boolean $management_ssl = true,
422446
Optional[String] $management_hostname = undef,
423447
Optional[String] $node_ip_address = undef,
424-
Optional[Variant[Numeric, String[1]]] $package_apt_pin = undef,
425-
String $package_ensure = 'installed',
426-
Optional[String] $package_gpg_key = undef,
427448
Optional[Integer] $quorum_cluster_size = undef,
428449
Optional[Boolean] $quorum_membership_reconciliation_enabled = undef,
429450
Optional[Boolean] $quorum_membership_reconciliation_auto_remove = undef,
430451
Optional[Integer] $quorum_membership_reconciliation_interval = undef,
431452
Optional[Integer] $quorum_membership_reconciliation_trigger_interval = undef,
432453
Optional[Integer] $quorum_membership_reconciliation_target_group_size = undef,
433-
Optional[String] $repo_gpg_key = undef,
434-
Variant[String, Array] $package_name = 'rabbitmq',
435-
Optional[String] $package_source = undef,
436-
Optional[String] $package_provider = undef,
437-
Boolean $repos_ensure = false,
438-
Boolean $manage_python = true,
439-
String $python_package = 'python',
440-
String $rabbitmq_user = 'rabbitmq',
441-
String $rabbitmq_group = 'rabbitmq',
442454
Stdlib::Absolutepath $rabbitmq_home = '/var/lib/rabbitmq',
443455
Integer $port = 5672,
444456
Boolean $tcp_keepalive = false,
445457
Integer $tcp_backlog = 128,
446458
Optional[Integer] $tcp_sndbuf = undef,
447459
Optional[Integer] $tcp_recbuf = undef,
448460
Optional[Integer] $heartbeat = undef,
449-
Enum['running', 'stopped'] $service_ensure = 'running',
450-
Boolean $service_manage = true,
451-
String $service_name = 'rabbitmq',
452461
Boolean $ssl = false,
453462
Boolean $ssl_only = false,
454463
Optional[Stdlib::Absolutepath] $ssl_cacert = undef,
@@ -549,15 +558,14 @@
549558
}
550559

551560
# when repos_ensure is true, we configure externel repos
552-
# CentOS 7 doesn't contain rabbitmq. It's only in EPEL.
553-
if $repos_ensure {
561+
if $enable_rabbitmq_repository {
554562
case $facts['os']['family'] {
555563
'RedHat': {
556-
contain rabbitmq::repo::rhel
564+
require rabbitmq::repo::rhel
557565
Class['rabbitmq::repo::rhel'] -> Class['rabbitmq::install']
558566
}
559567
'Debian': {
560-
contain rabbitmq::repo::apt
568+
require rabbitmq::repo::apt
561569
Class['rabbitmq::repo::apt'] -> Class['rabbitmq::install']
562570
}
563571
default: {
@@ -567,6 +575,8 @@
567575
package { 'centos-release-rabbitmq-38':
568576
ensure => 'present',
569577
}
578+
} elsif $facts['os']['family'] == 'RedHat' and $enable_centos_release and $enable_rabbitmq_repository {
579+
fail('Both $enable_centos_release and $enable_rabbitmq_repository are true')
570580
}
571581

572582
contain rabbitmq::install

manifests/repo/apt.pp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,29 @@
1313
# @param architecture
1414
#
1515
class rabbitmq::repo::apt (
16-
String[1] $location = 'https://packagecloud.io/rabbitmq/rabbitmq-server',
1716
String[1] $repos = 'main',
1817
Boolean $include_src = false,
19-
String[1] $key = '8C695B0219AFDEB04A058ED8F4E789204D206F89',
20-
String[1] $key_source = $rabbitmq::package_gpg_key,
18+
String[1] $key = '0A9AF2115F4687BD29803A206B73A36E6026DFCA',
19+
String[1] $key_source = $rabbitmq::apt_repo_gpg_key,
2120
Optional[String[1]] $key_content = $rabbitmq::key_content,
2221
Optional[String[1]] $architecture = undef,
2322
) {
23+
$osfamily = downcase($facts['os']['family'])
2424
$osname = downcase($facts['os']['name'])
2525
$pin = $rabbitmq::package_apt_pin
26-
26+
# https://www.rabbitmq.com/docs/install-debian
2727
apt::source { 'rabbitmq':
28-
ensure => present,
29-
location => "${location}/${osname}",
30-
repos => $repos,
31-
include => { 'src' => $include_src },
32-
key => {
28+
ensure => present,
29+
source_format => 'sources',
30+
location => ["https://deb1.rabbitmq.com/rabbitmq-erlang/${osfamily}/${osname}", "https://deb2.rabbitmq.com/rabbitmq-erlang/${osfamily}/${osname}"],
31+
repos => $repos,
32+
include => { 'src' => $include_src },
33+
key => {
3334
'id' => $key,
3435
'source' => $key_source,
35-
'content' => $key_content,
36+
'keyring' => '/usr/share/keyrings/com.rabbitmq.team.gpg',
3637
},
37-
architecture => $architecture,
38+
architecture => $architecture,
3839
}
3940

4041
if $pin {

manifests/repo/rhel.pp

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# Makes sure that the Packagecloud repo is installed
1+
# Makes sure that the RabbitMQ repo is installed
2+
# https://www.rabbitmq.com/docs/install-rpm
23
#
34
# @api private
45
#
@@ -7,34 +8,36 @@
78
# @param package_key_source
89
#
910
class rabbitmq::repo::rhel (
10-
String[1] $location = "https://packagecloud.io/rabbitmq/rabbitmq-server/el/${facts['os'][release][major]}/\$basearch",
11-
String[1] $repo_key_source = $rabbitmq::repo_gpg_key,
12-
String[1] $package_key_source = $rabbitmq::package_gpg_key,
11+
String[1] $primary_gpg_key = $rabbitmq::rpm_repo_primary_gpg_key,
12+
String[1] $erlang_repo_gpg_key = $rabbitmq::rpm_repo_erlang_gpg_key,
13+
String[1] $server_repo_gpg_key = $rabbitmq::rpm_repo_server_gpg_key,
1314
) {
14-
# Import package key from rabbitmq to be able to
15-
# sign the package and the repo.
16-
# rabbitmq key is gpg-pubkey-6026dfca-573adfde
17-
exec { "rpm --import ${package_key_source}":
15+
# gpg-pubkey-6026dfca-573adfde is the primary GPG key
16+
exec { "rpm --import ${primary_gpg_key}":
1817
path => ['/bin','/usr/bin','/sbin','/usr/sbin'],
1918
unless => 'rpm -q gpg-pubkey-6026dfca-573adfde 2>/dev/null',
20-
before => YumRepo['rabbitmq'],
19+
before => File['rabbitmq.repo'],
2120
}
22-
23-
yumrepo { 'rabbitmq':
24-
ensure => present,
25-
name => 'rabbitmq_rabbitmq-server',
26-
baseurl => $location,
27-
gpgkey => $repo_key_source,
28-
enabled => 1,
29-
gpgcheck => 1,
30-
repo_gpgcheck => 1,
21+
# gpg-pubkey-cc4bbe5b-60490155 is erlang repo key
22+
exec { "rpm --import ${erlang_repo_gpg_key}":
23+
path => ['/bin','/usr/bin','/sbin','/usr/sbin'],
24+
unless => 'rpm -q gpg-pubkey-cc4bbe5b-60490155 2>/dev/null',
25+
before => File['rabbitmq.repo'],
26+
}
27+
# gpg-pubkey-26208342-60327a6a is the server repo key
28+
exec { "rpm --import ${server_repo_gpg_key}":
29+
path => ['/bin','/usr/bin','/sbin','/usr/sbin'],
30+
unless => 'rpm -q gpg-pubkey-26208342-60327a6a 2>/dev/null',
31+
before => File['rabbitmq.repo'],
3132
}
3233

33-
# This may still be needed to prevent warnings
34-
# packagecloud key is gpg-pubkey-4d206f89-5bbb8d59
35-
exec { "rpm --import ${repo_key_source}":
36-
path => ['/bin','/usr/bin','/sbin','/usr/sbin'],
37-
unless => 'rpm -q gpg-pubkey-4d206f89-5bbb8d59 2>/dev/null',
38-
require => YumRepo['rabbitmq'],
34+
# Use a file instead of yumrepo as "Continuation lines that yum supports (for the baseurl, for example) are not supported."
35+
# https://forge.puppet.com/modules/puppetlabs/yumrepo_core/reference
36+
file { 'rabbitmq.repo':
37+
path => '/etc/yum.repos.d/rabbitmq.repo',
38+
group => 'root',
39+
mode => '0644',
40+
owner => 'root',
41+
source => 'puppet:///modules/rabbitmq/rabbitmq.repo',
3942
}
4043
}

metadata.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@
5959
}
6060
],
6161
"dependencies": [
62+
{
63+
"name": "puppetlabs/apt",
64+
"version_requirement": ">= 10.0.0 < 12.0.0"
65+
},
6266
{
6367
"name": "puppetlabs/stdlib",
6468
"version_requirement": ">= 9.0.0 < 10.0.0"

0 commit comments

Comments
 (0)