diff --git a/lib/ansible/plugins/strategy/__init__.py b/lib/ansible/plugins/strategy/__init__.py index 38917c8b588..7ff1491d75b 100644 --- a/lib/ansible/plugins/strategy/__init__.py +++ b/lib/ansible/plugins/strategy/__init__.py @@ -624,9 +624,6 @@ class StrategyBase: group_name = result_item.get('add_group') new_group = self._inventory.get_group(group_name) if not new_group: - # clear cache of group dict, which is used in magic host variables - self._inventory.clear_group_dict_cache() - # create the new group and add it to inventory new_group = Group(name=group_name) self._inventory.add_group(new_group) @@ -640,6 +637,10 @@ class StrategyBase: if group_name not in host.get_groups(): new_group.add_host(real_host) changed = True + + if changed: + # clear cache of group dict, which is used in magic host variables + self._inventory.clear_group_dict_cache() return changed