Files
openstack-ansible-rabbitmq_…/tasks/main.yml
Dmitriy Rabotyagov 399b7683ed Execute rabbitmq post_upgrade hook
Current implementation of rabbitmq-upgrade post_upgrade [1] performs
re-balance of queues between nodes, once upgrade is completed.

Which might be a very reasonable task to execute after any upgrade.

[1] https://www.rabbitmq.com/docs/man/rabbitmq-upgrade.8#post_upgrade

Change-Id: I54b8e22d3c8a3ea797724611f542d9e17982d92c
2025-04-10 13:15:19 +00:00

121 lines
4.0 KiB
YAML

---
# Copyright 2014, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Gather variables for each operating system
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower }}.yml"
- "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml"
- "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml"
- "{{ ansible_facts['distribution'] | lower }}.yml"
- "{{ ansible_facts['os_family'] | lower }}.yml"
paths:
- "{{ role_path }}/vars"
tags:
- always
- name: Importing rabbitmq_pre_install tasks
ansible.builtin.import_tasks: rabbitmq_pre_install.yml
tags:
- rabbitmq_server-install
# The install process will be skipped if `rabbitmq_ignore_version_state=true`
- name: Including rabbitmq_install tasks
ansible.builtin.include_tasks: rabbitmq_install.yml
when: not rabbitmq_ignore_version_state | bool
args:
apply:
tags:
- rabbitmq_server-install
- rabbitmq-install
tags:
- always
- name: Create and install SSL certificates
ansible.builtin.include_role:
name: pki
tasks_from: "{{ rabbitmq_pki_create_ca | ternary('main.yml', 'main_certs.yml') }}"
vars:
pki_setup_host: "{{ rabbitmq_pki_setup_host }}"
pki_dir: "{{ rabbitmq_pki_dir }}"
pki_create_ca: "{{ rabbitmq_pki_create_ca }}"
pki_regen_ca: "{{ rabbitmq_pki_regen_ca }}"
pki_authorities: "{{ rabbitmq_pki_authorities }}"
pki_install_ca: "{{ rabbitmq_pki_install_ca }}"
pki_create_certificates: "{{ rabbitmq_user_ssl_cert is not defined and rabbitmq_user_ssl_key is not defined }}"
pki_regen_cert: "{{ rabbitmq_pki_regen_cert }}"
pki_certificates: "{{ rabbitmq_pki_certificates }}"
pki_install_certificates: "{{ rabbitmq_pki_install_certificates }}"
- name: Importing rabbitmq_post_install tasks
ansible.builtin.import_tasks: rabbitmq_post_install.yml
tags:
- rabbitmq_server-config
- rabbitmq-config
- name: Flush handlers
ansible.builtin.meta: flush_handlers
- name: Importing rabbitmq_cluster tasks
ansible.builtin.import_tasks: rabbitmq_cluster.yml
tags:
- rabbitmq_server-config
- rabbitmq-cluster
- name: Including rabbitmq_setup tasks
ansible.builtin.include_tasks: rabbitmq_setup.yml
when:
- _rabbitmq_is_last_play_host
args:
apply:
tags:
- rabbitmq_server-config
tags:
- rabbitmq_server-config
- name: Ensure all flags are set after upgrade is done
when:
- _rabbitmq_is_last_play_host
- rabbitmq_upgrade
block:
- name: Including rabbitmq_cluster_state tasks
ansible.builtin.include_tasks: rabbitmq_cluster_state.yml
args:
apply:
tags:
- rabbitmq-upgrade
tags:
- rabbitmq-upgrade
- name: Importing rabbitmq_feature_flags tasks
ansible.builtin.include_tasks: rabbitmq_feature_flags.yml
args:
apply:
tags:
- rabbitmq-upgrade
tags:
- rabbitmq-upgrade
when:
- _cluster_state
- (_cluster_state.get('running_nodes', []) | length) == (groups[rabbitmq_host_group] | length)
- (_cluster_state.get('alarms', []) | length) == 0
- (_cluster_state.get('partitions', []) | length) == 0
- name: Run rabbitmq post_upgrade hook (rebalance queues)
ansible.builtin.command: rabbitmq-upgrade post_upgrade
changed_when: false