diff --git a/lib/ansible/inventory/data.py b/lib/ansible/inventory/data.py index e828c1a8d2b9ea..72f27fc7d5aba7 100644 --- a/lib/ansible/inventory/data.py +++ b/lib/ansible/inventory/data.py @@ -79,9 +79,6 @@ def _create_implicit_localhost(self, pattern): else: new_host = Host(pattern) - # use 'all' vars but not part of all group - new_host.vars = self.groups['all'].get_vars() - new_host.address = "127.0.0.1" new_host.implicit = True diff --git a/lib/ansible/inventory/host.py b/lib/ansible/inventory/host.py index a92835290a6629..647e00dc1cd8e8 100644 --- a/lib/ansible/inventory/host.py +++ b/lib/ansible/inventory/host.py @@ -143,7 +143,7 @@ def get_magic_vars(self): results['inventory_hostname_short'] = self.name.split('.')[0] results['group_names'] = sorted([g.name for g in self.get_groups() if g.name != 'all']) - return combine_vars(self.vars, results) + return results def get_vars(self): return combine_vars(self.vars, self.get_magic_vars()) diff --git a/lib/ansible/vars/manager.py b/lib/ansible/vars/manager.py index a29b186db614a2..0a50261a888766 100644 --- a/lib/ansible/vars/manager.py +++ b/lib/ansible/vars/manager.py @@ -319,14 +319,15 @@ def plugins_by_groups(): data[group] = combine_vars(data[group], _plugins_play(group)) return data - # Merge as per precedence config + # Merge groups as per precedence config, if not implicit localhost # only allow to call the functions we want exposed - for entry in C.VARIABLE_PRECEDENCE: - if entry in self._ALLOWED: - display.debug('Calling %s to load vars for %s' % (entry, host.name)) - all_vars = combine_vars(all_vars, locals()[entry]()) - else: - display.warning('Ignoring unknown variable precedence entry: %s' % (entry)) + if not host.implicit: + for entry in C.VARIABLE_PRECEDENCE: + if entry in self._ALLOWED: + display.debug('Calling %s to load vars for %s' % (entry, host.name)) + all_vars = combine_vars(all_vars, locals()[entry]()) + else: + display.warning('Ignoring unknown variable precedence entry: %s' % (entry)) # host vars, from inventory, inventory adjacent and play adjacent via plugins all_vars = combine_vars(all_vars, host.get_vars())