]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
rolling_update: fix active mds host value
authorDimitri Savineau <dsavinea@redhat.com>
Fri, 25 Oct 2019 20:47:50 +0000 (16:47 -0400)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Mon, 28 Oct 2019 17:08:43 +0000 (13:08 -0400)
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 <dsavinea@redhat.com>
(cherry picked from commit f1f2352c7974f0839b5e74cb23849e943a1131c6)

infrastructure-playbooks/rolling_update.yml

index f8762fd9ad2e9d85ff6859a040b2ca9742bf2cac..280f6fb2e4c0936aaa2171af680472d413db5d6d 100644 (file)
             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:
             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:
 
     - 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