--- /dev/null
+---
+- name: rabbitmq_clustering | stopping rabbitmq app
+ command: rabbitmqctl stop_app
+
+- name: rabbitmq_clustering | resetting rabbitmq app
+ command: rabbitmqctl reset
+
+- name: rabbitmq_clustering | stopping rabbitmq-server
+ service:
+ name: rabbitmq-server
+ state: stopped
+
+#- name: grabbing erlang cookie
+# shell: cat /var/lib/rabbitmq/.erlang.cookie
+# register: rabbitmq_erlang_cookie
+# when: inventory_hostname == "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | copy erlang cookie
+ template:
+ src: erlang.cookie.j2
+ dest: "{{ rabbitmq_erlang_cookie_file }}"
+ owner: rabbitmq
+ group: rabbitmq
+ mode: 0400
+ backup: yes #backing up in case the need to recover
+# when: inventory_hostname != "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | restarting rabbitmq-server on master
+ service:
+ name: rabbitmq-server
+ state: restarted
+ when: inventory_hostname == "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | starting rabbitmq app on master
+ command: rabbitmqctl start_app
+ register: cluster_master
+ when: inventory_hostname == "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | sending sigterm to any running rabbitmq processes
+ shell: pkill -u rabbitmq || true
+ when: inventory_hostname != "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | restarting rabbitmq-server
+ service:
+ name: rabbitmq-server
+ state: restarted
+ when: inventory_hostname != "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | stopping rabbitmq app
+ command: rabbitmqctl stop_app
+ when: inventory_hostname != "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | resetting rabbitmq app
+ command: rabbitmqctl reset
+ when: inventory_hostname != "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | joining rabbitmq cluster
+ command: rabbitmqctl join_cluster 'rabbit@{{ rabbitmq_master }}'
+ register: cluster_joined
+ when: inventory_hostname != "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | starting rabbitmq app
+ command: rabbitmqctl start_app
+ when: inventory_hostname != "{{ rabbitmq_master }}"
+
+- name: rabbitmq_clustering | marking as clustered
+ file:
+ path: /etc/rabbitmq/clustered
+ state: touch
+ when: cluster_master.changed or cluster_joined.changed