]> git.immae.eu Git - github/fretlink/ansible-rabbitmq.git/blobdiff - tasks/rabbitmq_clustering.yml
rabbitmq-env: add config file for env variables definition
[github/fretlink/ansible-rabbitmq.git] / tasks / rabbitmq_clustering.yml
index 348662a21a53dafb2972478bacf35284e9206b71..9e48590e539e7b777a6320a095787fa9a1585b0a 100644 (file)
@@ -1,56 +1,94 @@
 ---
 - name: rabbitmq_clustering | stopping rabbitmq app
   command: rabbitmqctl stop_app
+  become: true
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | resetting rabbitmq app
   command: rabbitmqctl reset
+  become: true
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | stopping rabbitmq-server
-  service: name=rabbitmq-server state=stopped
+  service:
+    name: rabbitmq-server
+    state: stopped
+  become: true
 
-#- name: grabbing erlang cookie
-#  shell: cat /var/lib/rabbitmq/.erlang.cookie
-#  register: erlang_cookie
-#  when: inventory_hostname == "{{ rabbitmq_master }}"
+- name: rabbitmq_clustering | Capturing Erlang Cookie On Master
+  command: "cat {{ rabbitmq_erlang_cookie_file }}"
+  become: true
+  register: "rabbitmq_erlang_cookie"
+  when: inventory_hostname == rabbitmq_master
+
+- name: rabbitmq_clustering | Setting Erlang Cookie Of Master on Non-Master
+  set_fact:
+    rabbitmq_erlang_cookie: "{{ hostvars[rabbitmq_master]['rabbitmq_erlang_cookie']['stdout'] }}"
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | copy erlang cookie
-  template: src=erlang.cookie.j2 dest={{ erlang_cookie_file }} owner=rabbitmq group=rabbitmq mode=0400 backup=yes
-#  when: inventory_hostname != "{{ rabbitmq_master }}"
+  template:
+    src: erlang.cookie.j2
+    dest: "{{ rabbitmq_erlang_cookie_file }}"
+    owner: rabbitmq
+    group: rabbitmq
+    mode: 0400
+    # backing up in case the need to recover
+    backup: yes
+  become: true
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | restarting rabbitmq-server on master
-  service: name=rabbitmq-server state=restarted
-  when: inventory_hostname == "{{ rabbitmq_master }}"
+  service:
+    name: rabbitmq-server
+    state: restarted
+  become: true
+  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 }}"
+  become: true
+  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 }}"
+  become: true
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | restarting rabbitmq-server
-  service: name=rabbitmq-server state=restarted
-  when: inventory_hostname != "{{ rabbitmq_master }}"
+  service:
+    name: rabbitmq-server
+    state: restarted
+  become: true
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | stopping rabbitmq app
   command: rabbitmqctl stop_app
-  when: inventory_hostname != "{{ rabbitmq_master }}"
+  become: true
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | resetting rabbitmq app
   command: rabbitmqctl reset
-  when: inventory_hostname != "{{ rabbitmq_master }}"
+  become: true
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | joining rabbitmq cluster
-  command: rabbitmqctl join_cluster 'rabbit@{{ rabbitmq_master }}'
+  command: rabbitmqctl join_cluster "rabbit@{{ hostvars[rabbitmq_master]['ansible_hostname'] }}"
   register: cluster_joined
-  when: inventory_hostname != "{{ rabbitmq_master }}"
+  become: true
+  when: inventory_hostname != rabbitmq_master
 
 - name: rabbitmq_clustering | starting rabbitmq app
   command: rabbitmqctl start_app
-  when: inventory_hostname != "{{ rabbitmq_master }}"
+  become: true
+  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
+  file:
+    path: /etc/rabbitmq/clustered
+    state: touch
+  become: true
+  when: >
+        cluster_master['changed'] or
+        cluster_joined['changed']