X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tasks%2Frabbitmq_clustering.yml;h=9e48590e539e7b777a6320a095787fa9a1585b0a;hb=532687b04b43e3b723f1c063217fd13ca5ae9ee7;hp=29db18ca3ff9f92234899ee905c245540ee00723;hpb=eb299d9b8716d8c5b0bdede17e29ada1f623fe43;p=github%2Ffretlink%2Fansible-rabbitmq.git diff --git a/tasks/rabbitmq_clustering.yml b/tasks/rabbitmq_clustering.yml index 29db18c..9e48590 100644 --- a/tasks/rabbitmq_clustering.yml +++ b/tasks/rabbitmq_clustering.yml @@ -1,40 +1,94 @@ --- -- name: rabbitmq_clustering | config | stopping rabbitmq app +- name: rabbitmq_clustering | stopping rabbitmq app command: rabbitmqctl stop_app + become: true + when: inventory_hostname != rabbitmq_master -- name: rabbitmq_clustering | config | resetting rabbitmq app +- name: rabbitmq_clustering | resetting rabbitmq app command: rabbitmqctl reset + become: true + when: inventory_hostname != rabbitmq_master -- name: rabbitmq_clustering | config | copy erlang cookie - template: src=erlang.cookie.j2 dest=/var/lib/rabbitmq/.erlang.cookie owner=rabbitmq group=rabbitmq mode=0400 backup=yes +- name: rabbitmq_clustering | stopping rabbitmq-server + service: + name: rabbitmq-server + state: stopped + become: true -- name: rabbitmq_clustering | config | starting rabbitmq app +- 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: "{{ 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 + become: true + when: inventory_hostname == rabbitmq_master + +- name: rabbitmq_clustering | starting rabbitmq app on master command: rabbitmqctl start_app - when: inventory_hostname == "{{ master_rabbit_node }}" + register: cluster_master + become: true + when: inventory_hostname == rabbitmq_master -- name: rabbitmq_clustering | config | sending sigterm to any running rabbitmq processes +- name: rabbitmq_clustering | sending sigterm to any running rabbitmq processes shell: pkill -u rabbitmq || true - when: inventory_hostname != "{{ master_rabbit_node }}" + become: true + when: inventory_hostname != rabbitmq_master -- name: rabbitmq_clustering | config | restarting rabbitmq-server - service: name=rabbitmq-server state=restarted - when: inventory_hostname != "{{ master_rabbit_node }}" +- name: rabbitmq_clustering | restarting rabbitmq-server + service: + name: rabbitmq-server + state: restarted + become: true + when: inventory_hostname != rabbitmq_master -- name: rabbitmq_clustering | config | stopping rabbitmq app +- name: rabbitmq_clustering | stopping rabbitmq app command: rabbitmqctl stop_app - when: inventory_hostname != "{{ master_rabbit_node }}" + become: true + when: inventory_hostname != rabbitmq_master -- name: rabbitmq_clustering | config | resetting rabbitmq app +- name: rabbitmq_clustering | resetting rabbitmq app command: rabbitmqctl reset - when: inventory_hostname != "{{ master_rabbit_node }}" + become: true + when: inventory_hostname != rabbitmq_master -- name: rabbitmq_clustering | config | joining rabbitmq cluster - command: rabbitmqctl join_cluster 'rabbit@{{ master_rabbit_node }}' - when: inventory_hostname != "{{ master_rabbit_node }}" +- name: rabbitmq_clustering | joining rabbitmq cluster + command: rabbitmqctl join_cluster "rabbit@{{ hostvars[rabbitmq_master]['ansible_hostname'] }}" + register: cluster_joined + become: true + when: inventory_hostname != rabbitmq_master -- name: rabbitmq_clustering | config | starting rabbitmq app +- name: rabbitmq_clustering | starting rabbitmq app command: rabbitmqctl start_app - when: inventory_hostname != "{{ master_rabbit_node }}" + become: true + when: inventory_hostname != rabbitmq_master -- name: rabbitmq_clustering | config | marking as clustered - file: path=/etc/rabbitmq/clustered state=touch +- name: rabbitmq_clustering | marking as clustered + file: + path: /etc/rabbitmq/clustered + state: touch + become: true + when: > + cluster_master['changed'] or + cluster_joined['changed']