Skip to content

Commit ac32cf3

Browse files
committed
rabbitmq better version management
1 parent 60e712c commit ac32cf3

2 files changed

Lines changed: 24 additions & 6 deletions

File tree

rabbitmq/install.sls

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@
22

33
{% from "acme/macros.jinja" import verify_and_issue %}
44
5-
65
# Short hostname must be resolved to the same host, otherwise it will fail to start.
76
# rabbitmq1 -> other server
87
# rabbitmq1.xxx.domain.com -> this server
98
# => fail
109
# Use grains["host"] for short name.
1110
rabbit_hosts:
1211
host.present:
12+
{%- if "local_ip" in pillar["rabbitmq"] %}
13+
- ip: {{ pillar["rabbitmq"]["local_ip"] }}
14+
{%- else %}
1315
- ip: 127.0.1.1
16+
{%- endif %}
1417
- names:
1518
- {{ grains["host"] }}
1619
@@ -41,15 +44,28 @@ rabbitmq_repo:
4144
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/{{ grains["os"].lower() }}/{{ grains["oscodename"] }} {{ grains["oscodename"] }} main
4245
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/{{ grains["os"].lower() }}/{{ grains["oscodename"] }} {{ grains["oscodename"] }} main
4346
44-
4547
rabbit_pkg:
48+
{%- if "version" in pillar["rabbitmq"] %}
49+
{%- if pillar["rabbitmq"]["version"] == "latest" %}
4650
pkg.latest:
4751
- refresh: True
4852
- pkgs:
4953
- rabbitmq-server
54+
{%- else %}
55+
pkg.installed:
56+
- refresh: True
57+
- pkgs:
58+
- rabbitmq-server: '{{ pillar["rabbitmq"]["version"] }}*'
59+
{%- endif %}
60+
{%- else %}
61+
pkg.installed:
62+
- refresh: True
63+
- pkgs:
64+
- rabbitmq-server
65+
{%- endif %}
5066
- reload_modules: True
5167
52-
{% if "rabbitmq_management" in pillar["rabbitmq"].get("plugins", []) and pillar["rabbitmq"]["management_domain"] is defined %}
68+
{%- if "rabbitmq_management" in pillar["rabbitmq"].get("plugins", []) and pillar["rabbitmq"]["management_domain"] is defined %}
5369
5470
{%- set domains = pillar["rabbitmq"]["management_domain"] ~ " " ~ pillar["rabbitmq"].get("subjectAltNames","") -%}
5571
@@ -59,7 +75,7 @@ rabbit_cert_perm_1:
5975
file.managed:
6076
- name: /opt/acme/cert/rabbitmq_{{ pillar["rabbitmq"]["management_domain"] }}_key.key
6177
- mode: 644
62-
{% endif %}
78+
{%- endif %}
6379
6480
rabbit_service_1:
6581
file.directory:
@@ -86,12 +102,12 @@ rabbit_config_1:
86102
- group: rabbitmq
87103
- contents: |
88104
# This file is managed by Salt, changes will be overwritten
89-
{% if "rabbitmq_management" in pillar["rabbitmq"].get("plugins", []) and pillar["rabbitmq"]["management_domain"] is defined %}
105+
{%- if "rabbitmq_management" in pillar["rabbitmq"].get("plugins", []) and pillar["rabbitmq"]["management_domain"] is defined %}
90106
management.ssl.port = {{ pillar["rabbitmq"]["management_port"] }}
91107
management.ssl.cacertfile = /opt/acme/cert/rabbitmq_{{ pillar["rabbitmq"]["management_domain"] }}_ca.cer
92108
management.ssl.certfile = /opt/acme/cert/rabbitmq_{{ pillar["rabbitmq"]["management_domain"] }}_cert.cer
93109
management.ssl.keyfile = /opt/acme/cert/rabbitmq_{{ pillar["rabbitmq"]["management_domain"] }}_key.key
94-
{% endif %}
110+
{%- endif %}
95111
{%- for config_line in pillar["rabbitmq"].get("config", []) %}
96112
{{ config_line }}
97113
{%- endfor %}

rabbitmq/pillar.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# vi: set ft=yaml:
22

33
rabbitmq:
4+
version: 4.2.3 # optional, specific version or latest, if omitted, install latest first, then keep it without upgrades
5+
#local_ip: 1.2.3.4 # optional, make sure /etc/hosts has short hostname resolution to this local IP, otherwise rabbitmq will not start, if omitted, 127.0.1.1 is used
46
config: # optional
57
- 'key = val' # see https://github.com/rabbitmq/rabbitmq-server/blob/v3.7.x/docs/rabbitmq.conf.example, each item is copied as is
68
admin:

0 commit comments

Comments
 (0)