
Follow up to I91d0e23b22319cf3fdb7603f5401d24e3b76a56e, which fixes a conditional corner case when removing the ha-all policy. Change-Id: Iea75551bc6d0da7dd10515dd8bd28c014eed7a5e
68 lines
2.2 KiB
YAML
68 lines
2.2 KiB
YAML
---
|
|
# NOTE(pbourke): These tasks perform a 'full stop upgrade', which is necessary when moving between
|
|
# major releases. In future kolla-ansible releases we may be able to change this to a rolling
|
|
# restart. For info on this process see https://www.rabbitmq.com/upgrade.html
|
|
- name: Checking if rabbitmq container needs upgrading
|
|
vars:
|
|
service_name: "rabbitmq"
|
|
service: "{{ rabbitmq_services[service_name] }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "compare_image"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ project_name }}"
|
|
image: "{{ rabbitmq_image_full }}"
|
|
environment: "{{ service.environment }}"
|
|
when: inventory_hostname in groups[role_rabbitmq_groups]
|
|
register: rabbitmq_differs
|
|
|
|
- name: List RabbitMQ policies
|
|
vars:
|
|
service_name: "rabbitmq"
|
|
service: "{{ rabbitmq_services[service_name] }}"
|
|
become: true
|
|
command: "docker exec {{ service.container_name }} rabbitmqctl list_policies --silent"
|
|
delegate_to: "{{ groups[role_rabbitmq_groups] | first }}"
|
|
run_once: true
|
|
register: rabbitmq_policies
|
|
changed_when: false
|
|
|
|
# NOTE(dszumski): This can be removed in the Zed cycle
|
|
- name: Remove ha-all policy from RabbitMQ
|
|
vars:
|
|
service_name: "rabbitmq"
|
|
service: "{{ rabbitmq_services[service_name] }}"
|
|
become: true
|
|
command: "docker exec {{ service.container_name }} rabbitmqctl clear_policy ha-all"
|
|
delegate_to: "{{ groups[role_rabbitmq_groups] | first }}"
|
|
when:
|
|
- "'ha-all' in rabbitmq_policies.stdout"
|
|
run_once: true
|
|
|
|
- import_tasks: config.yml
|
|
|
|
- import_tasks: check-containers.yml
|
|
|
|
- name: Stopping all rabbitmq instances but the first node
|
|
become: true
|
|
kolla_docker:
|
|
action: "stop_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ project_name }}"
|
|
when:
|
|
- inventory_hostname != groups[role_rabbitmq_groups]|first
|
|
- rabbitmq_differs['result']
|
|
|
|
- name: Stopping rabbitmq on the first node
|
|
become: true
|
|
kolla_docker:
|
|
action: "stop_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ project_name }}"
|
|
when:
|
|
- inventory_hostname == groups[role_rabbitmq_groups]|first
|
|
- rabbitmq_differs['result']
|
|
|
|
- name: Flush handlers
|
|
meta: flush_handlers
|