Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow roles to run with INJECT_FACTS_AS_VARS set to false #297

Open
kennethso168 opened this issue Feb 21, 2024 · 0 comments
Open

Allow roles to run with INJECT_FACTS_AS_VARS set to false #297

kennethso168 opened this issue Feb 21, 2024 · 0 comments

Comments

@kennethso168
Copy link

Currently, the roles failed to run with INJECT_FACTS_AS_VARS set to false as the required ansible_* variables (e.g. ansible_os_family) 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.

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 to ansible_facts.*. As the minimum supported ansible version of this collection is 2.9 I expect it should continue to work after the change. I can do a PR when I have time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant