diff --git a/lib/ansible/inventory/data.py b/lib/ansible/inventory/data.py index 72f27fc7d5..e828c1a8d2 100644 --- a/lib/ansible/inventory/data.py +++ b/lib/ansible/inventory/data.py @@ -79,6 +79,9 @@ class InventoryData(object): 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/vars/manager.py b/lib/ansible/vars/manager.py index 741852487f..5c559c8c0f 100644 --- a/lib/ansible/vars/manager.py +++ b/lib/ansible/vars/manager.py @@ -334,15 +334,14 @@ class VariableManager: data[group] = combine_vars(data[group], _plugins_play(group)) return data - # Merge groups as per precedence config, if not implicit localhost + # Merge groups as per precedence config # only allow to call the functions we want exposed - 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)) + 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())