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
121 lines
4.0 KiB
YAML
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
|