kolla-ansible/ansible/roles/rabbitmq/tasks/restart_services.yml
Matt Crees e709599ff0 RabbitMQ use maintenance mode on container restart
Puts the RabbitMQ node into maintenance mode before restarting the
container. This will make the node shutdown less disruptive. For details
on what maintenance mode does, see:
https://www.rabbitmq.com/upgrade.html#maintenance-mode

Change-Id: Ia61573f3fb95fe8fcde6b789ca77ef5b45fe0a65
2023-04-12 15:58:17 +01:00

40 lines
1.2 KiB
YAML

---
- name: Get info on RabbitMQ container
become: True
kolla_container_facts:
container_engine: "{{ kolla_container_engine }}"
name: "rabbitmq"
register: container_info
- name: Put RabbitMQ node into maintenance mode
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
- name: Restart rabbitmq container
vars:
service_name: "rabbitmq"
service: "{{ rabbitmq_services[service_name] }}"
become: true
kolla_docker:
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
command: "{{ kolla_container_engine }} exec {{ service.container_name }} rabbitmqctl wait {{ rabbitmq_pid_file }}"