aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/rabbitmq/tasks/restart_services.yml
blob: e12b301712b5c07dc3854cd56eaf29307e35622b (plain)
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
---
- name: Get info on RabbitMQ container
  become: true
  kolla_container_facts:
    action: get_containers
    container_engine: "{{ kolla_container_engine }}"
    name: "rabbitmq"
  register: container_info

- name: Put RabbitMQ node into maintenance mode if in cluster
  kolla_toolbox:
    container_engine: "{{ kolla_container_engine }}"
    module_name: "community.rabbitmq.rabbitmq_upgrade"
    module_args:
      action: "drain"
    user: root
  become: true
  when:
    - container_info.containers | length > 0
    - groups['rabbitmq'] | length > 1

- name: Stop the RabbitMQ application if not in cluster
  become: true
  changed_when: true
  command: "{{ kolla_container_engine }} exec rabbitmq rabbitmqctl stop_app"
  when:
    - container_info.containers | length > 0
    - groups['rabbitmq'] | length == 1

- name: Restart rabbitmq container
  vars:
    service_name: "rabbitmq"
    service: "{{ rabbitmq_services[service_name] }}"
  become: true
  kolla_container:
    action: "recreate_or_restart_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ service.container_name }}"
    image: "{{ service.image }}"
    volumes: "{{ service.volumes }}"
    environment: "{{ service.environment }}"
    dimensions: "{{ service.dimensions }}"
    healthcheck: "{{ service.healthcheck | default(omit) }}"

- name: Waiting for rabbitmq to start
  vars:
    service_name: "rabbitmq"
    service: "{{ rabbitmq_services[service_name] }}"
  become: true
  changed_when: false
  command: "{{ kolla_container_engine }} exec {{ service.container_name }} rabbitmqctl wait --timeout 60 {{ rabbitmq_pid_file }}"