aboutsummaryrefslogtreecommitdiffhomepage
path: root/tasks/rabbitmq_clustering.yml
blob: 9e48590e539e7b777a6320a095787fa9a1585b0a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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
  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: "{{ 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
  register: cluster_master
  become: true
  when: inventory_hostname == rabbitmq_master

- name: rabbitmq_clustering | sending sigterm to any running rabbitmq processes
  shell: pkill -u rabbitmq || true
  become: true
  when: inventory_hostname != rabbitmq_master

- name: rabbitmq_clustering | restarting rabbitmq-server
  service:
    name: rabbitmq-server
    state: restarted
  become: true
  when: inventory_hostname != rabbitmq_master

- 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 | 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 | starting rabbitmq app
  command: rabbitmqctl start_app
  become: true
  when: inventory_hostname != rabbitmq_master

- name: rabbitmq_clustering | marking as clustered
  file:
    path: /etc/rabbitmq/clustered
    state: touch
  become: true
  when: >
        cluster_master['changed'] or
        cluster_joined['changed']