From b0e6d9248082be2287e813bc01ee916fbd3cea08 Mon Sep 17 00:00:00 2001 From: Grzegorz Sikorski Date: Tue, 17 Mar 2020 09:07:03 +0100 Subject: [PATCH] rabbitmq: update cluster version on reconfigure Signed-off-by: Grzegorz Sikorski --- ansible/roles/rabbitmq/tasks/config.yml | 40 +++++++++++++++++++ .../templates/rabbitmq-clusterer.config.j2 | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/ansible/roles/rabbitmq/tasks/config.yml b/ansible/roles/rabbitmq/tasks/config.yml index 07f467ada..d222669ab 100644 --- a/ansible/roles/rabbitmq/tasks/config.yml +++ b/ansible/roles/rabbitmq/tasks/config.yml @@ -22,6 +22,29 @@ become: true when: rabbitmq_ssl.enabled | bool +- name: Reading cluster configuration file + become: True + slurp: + src: /etc/kolla/rabbitmq/rabbitmq-clusterer.config + register: cluster_config + failed_when: False + +- name: Establishing existing cluster version number + set_fact: + old_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: + old_cluster_version: 0 + when: cluster_config['content'] is not defined + +- name: Establishing new cluster version number + set_fact: + new_cluster_version: "{{ (old_cluster_version | int + 1) | string }}" + - name: Copying over rabbit certs copy: src: "{{ item.src }}" @@ -60,6 +83,7 @@ - name: Copying over rabbitmq configs vars: service: "{{ rabbitmq_services['rabbitmq'] }}" + cluster_version: "{{ old_cluster_version }}" template: src: "{{ item }}.j2" dest: "{{ node_config_directory }}/{{ project_name }}/{{ item }}" @@ -78,6 +102,22 @@ notify: - Restart rabbitmq container +- name: Updating cluster version + vars: + service: "{{ rabbitmq_services['rabbitmq'] }}" + cluster_version: "{{ new_cluster_version }}" + template: + src: "{{ item }}.j2" + dest: "{{ node_config_directory }}/{{ project_name }}/{{ item }}" + mode: "0660" + become: true + when: + - rabbitmq_confs.changed | bool + with_items: + - "rabbitmq-clusterer.config" + notify: + - Restart rabbitmq container + - name: Check rabbitmq containers become: true kolla_docker: diff --git a/ansible/roles/rabbitmq/templates/rabbitmq-clusterer.config.j2 b/ansible/roles/rabbitmq/templates/rabbitmq-clusterer.config.j2 index 35f0e67fc..576f8e438 100644 --- a/ansible/roles/rabbitmq/templates/rabbitmq-clusterer.config.j2 +++ b/ansible/roles/rabbitmq/templates/rabbitmq-clusterer.config.j2 @@ -1,5 +1,5 @@ [ - {version, 1}, + {version, {{ cluser_version }}}, {nodes, [ {% for host in groups[role_rabbitmq_groups] %} {'rabbit@{{ hostvars[host]['ansible_hostname'] }}', disc} -- 2.17.1