rabbitmq: update cluster version on reconfigure
This fixes https://bugs.launchpad.net/kolla-ansible/+bug/1731142. The solution is to bump a version number of the cluster configuration file (/etc/kolla/rabbitmq/rabbitmq-clusterer.config) every time RabbitMQ configuration files change. Closes-bug: #1731142 Change-Id: I26cce92e52b2ba6b905658e11d794c65e361f545
This commit is contained in:
parent
3ecc2f7370
commit
7408d49979
|
@ -12,6 +12,25 @@
|
|||
- item.value.enabled | bool
|
||||
with_dict: "{{ rabbitmq_services }}"
|
||||
|
||||
- name: Reading cluster configuration file
|
||||
become: True
|
||||
slurp:
|
||||
src: "{{ node_config_directory }}/{{ project_name }}/rabbitmq-clusterer.config"
|
||||
register: cluster_config
|
||||
failed_when: False
|
||||
|
||||
- name: Establishing existing cluster version number
|
||||
set_fact:
|
||||
rabbitmq_cluster_version: "{{ cluster_config['content'] | b64decode | regex_search(regexp,'\\1', multiline=True) | first }}"
|
||||
vars:
|
||||
regexp: '\{version, (\d+)\},'
|
||||
when: cluster_config['content'] is defined
|
||||
|
||||
- name: Establishing default cluster version number
|
||||
set_fact:
|
||||
rabbitmq_cluster_version: 1
|
||||
when: cluster_config['content'] is not defined
|
||||
|
||||
- name: Copying over config.json files for services
|
||||
template:
|
||||
src: "{{ item.key }}.json.j2"
|
||||
|
@ -29,6 +48,7 @@
|
|||
- name: Copying over rabbitmq configs
|
||||
vars:
|
||||
service: "{{ rabbitmq_services['rabbitmq'] }}"
|
||||
cluster_version: "{{ rabbitmq_cluster_version }}"
|
||||
template:
|
||||
src: "{{ item }}.j2"
|
||||
dest: "{{ node_config_directory }}/{{ project_name }}/{{ item }}"
|
||||
|
@ -46,6 +66,36 @@
|
|||
notify:
|
||||
- Restart rabbitmq container
|
||||
|
||||
- name: Bumping cluster version
|
||||
vars:
|
||||
service: "{{ rabbitmq_services['rabbitmq'] }}"
|
||||
set_fact:
|
||||
rabbitmq_cluster_version: "{{ rabbitmq_cluster_version | int + 1 }}"
|
||||
when:
|
||||
- inventory_hostname in groups[service.group]
|
||||
- service.enabled | bool
|
||||
- rabbitmq_confs.changed | bool
|
||||
- cluster_config['content'] is defined
|
||||
|
||||
- name: Updating cluster version
|
||||
vars:
|
||||
service: "{{ rabbitmq_services['rabbitmq'] }}"
|
||||
cluster_version: "{{ rabbitmq_cluster_version }}"
|
||||
template:
|
||||
src: "{{ item }}.j2"
|
||||
dest: "{{ node_config_directory }}/{{ project_name }}/{{ item }}"
|
||||
mode: "0660"
|
||||
become: true
|
||||
when:
|
||||
- inventory_hostname in groups[service.group]
|
||||
- service.enabled | bool
|
||||
- rabbitmq_confs.changed | bool
|
||||
- cluster_config['content'] is defined
|
||||
with_items:
|
||||
- "rabbitmq-clusterer.config"
|
||||
notify:
|
||||
- Restart rabbitmq container
|
||||
|
||||
- name: Check rabbitmq containers
|
||||
become: true
|
||||
kolla_docker:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[
|
||||
{version, 1},
|
||||
{version, {{ cluster_version }}},
|
||||
{nodes, [
|
||||
{% for host in groups[role_rabbitmq_groups] %}
|
||||
{'rabbit@{{ hostvars[host]['ansible_hostname'] }}', disc}
|
||||
|
|
Loading…
Reference in New Issue