diff --git a/CHANGELOG.md b/CHANGELOG.md index fd28b548ba..6b9d078499 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -108,6 +108,7 @@ Ansible Changes By Release * Fix for win_copy to copy a source file that has invalid windows characters in the filename, the dest still must be have valid windows characters (https://github.com/ansible/ansible/issues/31336#issuecomment-334649927) * Fix systemd module to not run daemon-reload in check mode. * fixed some parsing and selection issues with inventory manager, fixed minor bugs in yaml and constructed plugins +* reverted implicit localhost getting vars from 'all' group diff --git a/lib/ansible/inventory/data.py b/lib/ansible/inventory/data.py index e828c1a8d2..72f27fc7d5 100644 --- a/lib/ansible/inventory/data.py +++ b/lib/ansible/inventory/data.py @@ -79,9 +79,6 @@ 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/inventory/host.py b/lib/ansible/inventory/host.py index a92835290a..647e00dc1c 100644 --- a/lib/ansible/inventory/host.py +++ b/lib/ansible/inventory/host.py @@ -143,7 +143,7 @@ class Host: 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 a29b186db6..0a50261a88 100644 --- a/lib/ansible/vars/manager.py +++ b/lib/ansible/vars/manager.py @@ -319,14 +319,15 @@ class VariableManager: 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())