diff --git a/lib/ansible/inventory/__init__.py b/lib/ansible/inventory/__init__.py index 27198f1c9ed..a7d13b2c869 100644 --- a/lib/ansible/inventory/__init__.py +++ b/lib/ansible/inventory/__init__.py @@ -148,10 +148,12 @@ class Inventory(object): for g in self.groups: group = self.groups[g] group.vars = combine_vars(group.vars, self.get_group_variables(group.name)) + self.get_group_vars(group) # set host vars from host_vars/ files and vars plugins for host in self.get_hosts(): host.vars = combine_vars(host.vars, self.get_host_variables(host.name)) + self.get_host_vars(host) def _match(self, str, pattern_str): try: @@ -703,7 +705,7 @@ class Inventory(object): found_host_vars = self._find_host_vars_files(self._playbook_basedir) if found_host_vars: - self._host_vars_files = self._find_host_vars_files(self._playbook_basedir) + self._host_vars_files = self._host_vars_files.union(found_host_vars) # get host vars from host_vars/ files for host in self.get_hosts(): self.get_host_vars(host) diff --git a/lib/ansible/plugins/strategy/__init__.py b/lib/ansible/plugins/strategy/__init__.py index c93626a7ede..bb1cede6f3a 100644 --- a/lib/ansible/plugins/strategy/__init__.py +++ b/lib/ansible/plugins/strategy/__init__.py @@ -425,6 +425,7 @@ class StrategyBase: if not new_host: new_host = Host(name=host_name) self._inventory._hosts_cache[host_name] = new_host + self._inventory.get_host_vars(new_host) allgroup = self._inventory.get_group('all') allgroup.add_host(new_host) @@ -438,6 +439,7 @@ class StrategyBase: if not self._inventory.get_group(group_name): new_group = Group(group_name) self._inventory.add_group(new_group) + self._inventory.get_group_vars(new_group) new_group.vars = self._inventory.get_group_variables(group_name) else: new_group = self._inventory.get_group(group_name)