blob: 6a33d56825ff87b6a391217a769705b9cd8f7502 [file] [log] [blame]
Filip Pytlounef5b0af2015-10-06 16:28:32 +02001=========================
2RabbitMQ messaging system
3=========================
4
5RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard.
6
Filip Pytlounef5b0af2015-10-06 16:28:32 +02007Sample pillars
8==============
9
10Standalone Broker
11-----------------
12
13RabbitMQ as AMQP broker with admin user and vhosts
14
15.. code-block:: yaml
16
17 rabbitmq:
18 server:
19 enabled: true
20 bind:
21 address: 0.0.0.0
22 port: 5672
23 secret_key: rabbit_master_cookie
24 admin:
25 name: adminuser
26 password: pwd
27 plugins:
28 - amqp_client
29 - rabbitmq_management
30 virtual_hosts:
31 - enabled: true
32 host: '/monitor'
33 user: 'monitor'
34 password: 'password'
35
36RabbitMQ as a Stomp broker
37
38.. code-block:: yaml
39
40 rabbitmq:
41 server:
42 enabled: true
43 secret_key: rabbit_master_cookie
44 bind:
45 address: 0.0.0.0
46 port: 5672
47 virtual_hosts:
48 - enabled: true
49 host: '/monitor'
50 user: 'monitor'
51 password: 'password'
52 plugins:
53 - rabbitmq_stomp
54
55RabbitMQ cluster
56----------------
57
58RabbitMQ as base cluster node
59
60.. code-block:: yaml
61
62 rabbitmq:
63 server:
64 enabled: true
65 bind:
66 address: 0.0.0.0
67 port: 5672
68 secret_key: rabbit_master_cookie
69 admin:
70 name: adminuser
71 password: pwd
72 cluster:
73 enabled: true
74 role: master
75 mode: disc
76 members:
77 - name: openstack1
78 host: 10.10.10.212
79 - name: openstack2
80 host: 10.10.10.213
81
82HA Queues definition
83
84.. code-block:: yaml
85
86 rabbitmq:
87 server:
88 enabled: true
89 ...
90 virtual_hosts:
91 - enabled: true
92 host: '/monitor'
93 user: 'monitor'
94 password: 'password'
95 policies:
96 - name: HA
Kirill Bespalov09e52182017-05-10 14:20:30 +030097 pattern: '^(?!amq\.).*'
Filip Pytlounef5b0af2015-10-06 16:28:32 +020098 definition: '{"ha-mode": "all"}'
99
Kirill Bespalov09e52182017-05-10 14:20:30 +0300100
101
102Enable TLS support
103------------------
104
105The certs and private key passing:
106
107.. code-block:: yaml
108
109 rabbitmq:
110 server:
111 enabled: true
112 ...
113 ssl:
114 enabled: True
115
116 cacert_chain: |
117 -----BEGIN CERTIFICATE-----
118 ...
119 -----END CERTIFICATE-------
120
121 key: |
122 -----BEGIN RSA PRIVATE KEY-----
123 ...
124 -----END RSA PRIVATE KEY-------
125
126 cert: |
127 -----BEGIN CERTIFICATE-----
128 ...
129 -----END CERTIFICATE-------
130
131
132Also you can pass them via specifing a name of ca authority at salt master:
133
134.. code-block:: yaml
135
136 rabbitmq:
137 server:
138 enabled: true
139 ...
140 ssl:
141 enabled: True
142 authority: CA_Authority_Name
143
144In this case keys and certs will be pulled from:
145
146`salt://pki/{{ authority }}/certs/{ rabbitmq.{cert|key} | ca.cert }`
147
148--
149
150Defaut port for TLS is **5671**:
151
152.. code-block:: yaml
153
154 rabbitmq:
155 server:
156 bind:
157 ssl:
158 port: 5671
159
Filip Pytlounef5b0af2015-10-06 16:28:32 +0200160Usage
161=====
162
163Check cluster status, example shows running cluster with 3 nodes: ctl-1, ctl-2, ctl-3
164
165.. code-block:: yaml
166
167 > rabbitmqctl cluster_status
Kirill Bespalov09e52182017-05-10 14:20:30 +0300168
Filip Pytlounef5b0af2015-10-06 16:28:32 +0200169 Cluster status of node 'rabbit@ctl-1' ...
Kirill Bespalov09e52182017-05-10 14:20:30 +0300170 [{nodes,[{disc,['rabbit@ctl-1','rabbit@ctl-2','rabbit@ctl-3']}]},
Filip Pytlounef5b0af2015-10-06 16:28:32 +0200171 {running_nodes,['rabbit@ctl-3','rabbit@ctl-2','rabbit@ctl-1']},
172 {partitions,[]}]
173 ...done.
174
175Setup management user.
176
177.. code-block:: yaml
178
179 > rabbitmqctl add_vhost vhost
180 > rabbitmqctl add_user user alive
181 > rabbitmqctl set_permissions -p vhost user ".*" ".*" ".*"
182 > rabbitmqctl set_user_tags user management
183
184EPD process is Erlang Port Mapper Daemon. It's a feature of the Erlang runtime that helps Erlang nodes to find each other. It's a pretty tiny thing and doesn't contain much state (other than "what Erlang nodes are running on this system?") so it's not a huge deal for it to still be running.
185Although it's running as user rabbitmq, it was started automatically by the Erlang VM when we started. We've considered adding "epmd -kill" to our shutdown script - but that would break any other Erlang apps running on the system; it's more "global" than RabbitMQ.
186
187Read more
188=========
189
190* http://www.rabbitmq.com/admin-guide.html
191* https://github.com/saltstack/salt-contrib/blob/master/states/rabbitmq_plugins.py
192* http://docs.saltstack.com/ref/states/all/salt.states.rabbitmq_user.html
193* http://stackoverflow.com/questions/14699873/how-to-reset-user-for-rabbitmq-management
194* http://www.rabbitmq.com/memory.html
195
196Clustering
197==========
198
199* http://www.rabbitmq.com/clustering.html#auto-config
200* https://github.com/jesusaurus/hpcs-salt-state/tree/master/rabbitmq
201* http://gigisayfan.blogspot.cz/2012/06/rabbit-mq-clustering-python-fabric.html
202* http://docwiki.cisco.com/wiki/OpenStack_Havana_Release:_High-Availability_Manual_Deployment_Guide#RabbitMQ_Installation
Filip Pytloun55a7ef02017-02-02 13:02:03 +0100203
204Documentation and Bugs
205======================
206
207To learn how to install and update salt-formulas, consult the documentation
208available online at:
209
210 http://salt-formulas.readthedocs.io/
211
212In the unfortunate event that bugs are discovered, they should be reported to
213the appropriate issue tracker. Use Github issue tracker for specific salt
214formula:
215
216 https://github.com/salt-formulas/salt-formula-rabbitmq/issues
217
218For feature requests, bug reports or blueprints affecting entire ecosystem,
219use Launchpad salt-formulas project:
220
221 https://launchpad.net/salt-formulas
222
223You can also join salt-formulas-users team and subscribe to mailing list:
224
225 https://launchpad.net/~salt-formulas-users
226
227Developers wishing to work on the salt-formulas projects should always base
228their work on master branch and submit pull request against specific formula.
229
230 https://github.com/salt-formulas/salt-formula-rabbitmq
231
232Any questions or feedback is always welcome so feel free to join our IRC
233channel:
234
235 #salt-formulas @ irc.freenode.net