From bd79b4480a5d70076c9d981a34dfd6f357d116dd Mon Sep 17 00:00:00 2001 From: Dimitri Savineau Date: Fri, 25 Oct 2019 16:47:50 -0400 Subject: [PATCH] rolling_update: fix active mds host value The active mds host should be based on the inventory hostname and not on the ansible hostname. The value returns under the mdsmap structure is based on the OS hostname so we need to find the right node in the inventory with this value when doing operation on inventory nodes. Othewise we could see error like: The task includes an option with an undefined variable. The error was: "hostvars[foobar]" is undefined Signed-off-by: Dimitri Savineau (cherry picked from commit f1f2352c7974f0839b5e74cb23849e943a1131c6) --- infrastructure-playbooks/rolling_update.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/infrastructure-playbooks/rolling_update.yml b/infrastructure-playbooks/rolling_update.yml index f8762fd9a..280f6fb2e 100644 --- a/infrastructure-playbooks/rolling_update.yml +++ b/infrastructure-playbooks/rolling_update.yml @@ -515,6 +515,11 @@ mds_active_name: "{{ (_mds_active_name.stdout | from_json)['info'][item.key]['name'] }}" with_dict: "{{ (_mds_active_name.stdout | from_json).info }}" + - name: set_fact mds_active_host + set_fact: + mds_active_host: "{{ hostvars[item]['inventory_hostname'] }}" + with_items: "{{ groups[mds_group_name] }}" + when: hostvars[item]['ansible_hostname'] == mds_active_name - name: create standby_mdss group add_host: @@ -522,7 +527,7 @@ groups: standby_mdss ansible_host: "{{ hostvars[item]['ansible_host'] | default(omit) }}" ansible_port: "{{ hostvars[item]['ansible_port'] | default(omit) }}" - with_items: "{{ groups[mds_group_name] | difference(mds_active_name) }}" + with_items: "{{ groups[mds_group_name] | difference(mds_active_host) }}" - name: stop standby ceph mds systemd: @@ -553,10 +558,10 @@ - name: create active_mdss group add_host: - name: "{{ mds_active_name if mds_active_name is defined else groups.get(mds_group_name)[0] }}" + name: "{{ mds_active_host if mds_active_host is defined else groups.get(mds_group_name)[0] }}" groups: active_mdss - ansible_host: "{{ hostvars[mds_active_name if mds_active_name is defined else groups.get(mds_group_name)[0]]['ansible_host'] | default(omit) }}" - ansible_port: "{{ hostvars[mds_active_name if mds_active_name is defined else groups.get(mds_group_name)[0]]['ansible_port'] | default(omit) }}" + ansible_host: "{{ hostvars[mds_active_host if mds_active_host is defined else groups.get(mds_group_name)[0]]['ansible_host'] | default(omit) }}" + ansible_port: "{{ hostvars[mds_active_host if mds_active_host is defined else groups.get(mds_group_name)[0]]['ansible_port'] | default(omit) }}" - name: upgrade active mds