Currently, the roles failed to run with INJECT_FACTS_AS_VARS set to false as the required ansible_* variables (e.g. ansible_distribution) are not defined.
The configuration INJECT_FACTS_AS_VARS and the Ansible fact namespace ansible_facts.* has been added in Ansible 2.5. In the porting guide of that version it stated that:
A new configuration variable, inject_facts_as_vars, has been added to ansible.cfg. Its default setting, ‘True’, keeps the 2.4 behavior of facts variables being set in the old ansible_* locations (while also writing them to the new namespace). This variable is expected to be set to ‘False’ in a future release. When inject_facts_as_vars is set to False, you must refer to ansible_facts through the new ansible_facts.* namespace.
Currently, the roles failed to run with
INJECT_FACTS_AS_VARS
set tofalse
as the requiredansible_*
variables (e.g.ansible_distribution
) are not defined.The configuration
INJECT_FACTS_AS_VARS
and the Ansible fact namespaceansible_facts.*
has been added in Ansible 2.5. In the porting guide of that version it stated that:It was also confirmed by Ansible developer on reddit that
INJECT_FACTS_AS_VARS
was planned to be deprecated in the future.Therefore, it would be great if the collections supported
INJECT_FACTS_AS_VARS=false
as well.To fix this just change all
ansible_*
variables toansible_facts.*
. This should work for all ansible versions >=2.5. I can do a PR when I have time.