VictoriaMetrics / ansible-playbooks

Ansible Playbooks for Victoria Metrics monorepo
Apache License 2.0
96 stars 33 forks source link

Allow roles to run with INJECT_FACTS_AS_VARS set to false #51

Open kennethso168 opened 6 months ago

kennethso168 commented 6 months ago

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.

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.*. This should work for all ansible versions >=2.5. I can do a PR when I have time.