Why you should use the Ansible set_fact module
So far it seems that the Ansible
set_fact module is not required very often. I found 2 cases in the roles I write:
In the awx role:
- name: pick most recent tag set_fact: awx_version: "" with_items: - ""
In the zabbix_server role:
- name: find version of zabbix-server-mysql set_fact: zabbix_server_version: ""
In both cases a “complex” variable strucure is saved into a simpler to call variable name.
Variables that are constructed of other variables can be set in
vars/main.yml. For example the kernel role needs a version of the kernel in
And the rest can be calculated in
set_fact can be used to keep code simple, other (most) times
vars/main.yml can help.
For a moral compass Southpark uses Brian Boitano, where my moral coding compass uses Jeff Geerling who would say something like: “If your code is complex, it’s probably not good.”