X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tasks%2Frabbitmq_clustering.yml;h=9e48590e539e7b777a6320a095787fa9a1585b0a;hb=18be22a714897afa9da5db7e59bc02f606d6d6d7;hp=a87bb2b3bad91fa2649bbb104ddd2a2f7c47d7d5;hpb=9658075b826dbf1206e7d9f689b242acfeb61b3d;p=github%2Ffretlink%2Fansible-rabbitmq.git diff --git a/tasks/rabbitmq_clustering.yml b/tasks/rabbitmq_clustering.yml index a87bb2b..9e48590 100644 --- a/tasks/rabbitmq_clustering.yml +++ b/tasks/rabbitmq_clustering.yml @@ -1,49 +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: 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=/var/lib/rabbitmq/.erlang.cookie owner=rabbitmq group=rabbitmq mode=0400 backup=yes + 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 }}" and cluster_master.changed + become: true + when: inventory_hostname != rabbitmq_master - name: rabbitmq_clustering | restarting rabbitmq-server - service: name=rabbitmq-server state=restarted - when: inventory_hostname != "{{ rabbitmq_master }}" and cluster_master.changed + 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 }}" and cluster_master.changed + become: true + when: inventory_hostname != rabbitmq_master - name: rabbitmq_clustering | resetting rabbitmq app command: rabbitmqctl reset - when: inventory_hostname != "{{ rabbitmq_master }}" and cluster_master.changed + become: true + when: inventory_hostname != rabbitmq_master - name: rabbitmq_clustering | joining rabbitmq cluster - command: rabbitmqctl join_cluster 'rabbit@{{ master_rabbit_node }}' - when: inventory_hostname != "{{ rabbitmq_master }}" and cluster_master.changed + command: rabbitmqctl join_cluster "rabbit@{{ hostvars[rabbitmq_master]['ansible_hostname'] }}" + register: cluster_joined + become: true + when: inventory_hostname != rabbitmq_master - name: rabbitmq_clustering | starting rabbitmq app command: rabbitmqctl start_app - when: inventory_hostname != "{{ rabbitmq_master }}" and cluster_master.changed + become: true + when: inventory_hostname != rabbitmq_master - name: rabbitmq_clustering | marking as clustered - file: path=/etc/rabbitmq/clustered state=touch - when: cluster_master.changed + file: + path: /etc/rabbitmq/clustered + state: touch + become: true + when: > + cluster_master['changed'] or + cluster_joined['changed']