]> git.apps.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:33 +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 405c714ff431d02235d247e123dbed342efbad91..5c8c5cf7bc4dd4e82cf4f570d20466d7d550cea5 100644 (file)
 
             - name: set_fact mds_active_name
               set_fact:
-                mds_active_name: "{{ [(_mds_active_name.stdout | from_json)['filesystems'][0]['mdsmap']['info'][item.key]['name']] }}"
+                mds_active_name: "{{ (_mds_active_name.stdout | from_json)['filesystems'][0]['mdsmap']['info'][item.key]['name'] }}"
               with_dict: "{{ (_mds_active_name.stdout | from_json).filesystems[0]['mdsmap']['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:
                 name: "{{ item }}"
                 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[0] if mds_active_name is defined else groups.get(mds_group_name)[0] }}"
+            name: "{{ mds_active_host[0] if mds_active_host is defined else groups.get(mds_group_name)[0] }}"
             groups: active_mdss
-            ansible_host: "{{ hostvars[mds_active_name[0] if mds_active_name is defined else groups.get(mds_group_name)[0]]['ansible_host'] | default(omit) }}"
-            ansible_port: "{{ hostvars[mds_active_name[0] if mds_active_name is defined else groups.get(mds_group_name)[0]]['ansible_port'] | default(omit) }}"
+            ansible_host: "{{ hostvars[mds_active_host[0] if mds_active_host is defined else groups.get(mds_group_name)[0]]['ansible_host'] | default(omit) }}"
+            ansible_port: "{{ hostvars[mds_active_host[0] if mds_active_host is defined else groups.get(mds_group_name)[0]]['ansible_port'] | default(omit) }}"
 
 
 - name: upgrade active mds