From 3684d421e41cbc52f1d707f47190e377cbda8f8e Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Thu, 22 Nov 2018 14:38:57 +0100 Subject: [PATCH] defaults: play set_radosgw_address.yml only on rgw nodes This is not needed to play these tasks on nodes that are not in rgw group. Always playing this code makes `shrink_mon.yml` failing. Typical error: ``` TASK [ceph-defaults : set_fact _radosgw_address to radosgw_interface - ipv4] *** task path: /home/jenkins-build/build/workspace/ceph-ansible-prs-dev-shrink_mon/roles/ceph-defaults/tasks/set_radosgw_address.yml:21 Thursday 22 November 2018 12:34:51 +0000 (0:00:00.154) 0:00:12.371 ***** fatal: [localhost]: FAILED! => {} MSG: The task includes an option with an undefined variable. The error was: 'ansible.vars.hostvars.HostVarsVars object' has no attribute u'ansible_eth1' ``` Indeed, `radosgw_interface` is the network interface on rgw only. It is expected that this same interface doesn't exist on `localhost`, so, when running `shrink_mon.yml`, the role `ceph-defaults` is called in `hosts: localhost` and causes the playbook to fail. Signed-off-by: Guillaume Abrioux --- roles/ceph-defaults/tasks/facts.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/ceph-defaults/tasks/facts.yml b/roles/ceph-defaults/tasks/facts.yml index c2e905f0c..4404e4ba8 100644 --- a/roles/ceph-defaults/tasks/facts.yml +++ b/roles/ceph-defaults/tasks/facts.yml @@ -267,6 +267,8 @@ - name: import_tasks set_radosgw_address.yml import_tasks: set_radosgw_address.yml + when: + - inventory_hostname in groups.get(rgw_group_name, []) - name: populate service facts service_facts: -- 2.39.5