1

Can an inventory variable in Ansible be dependent on a fact?

Namely, I have a variable in group_vars/all/cars.yml that I would like to set to a value dependent on ansible_fqdn. Like:

---

link: "http://{{ ansible_fqdn }}:8070/api"

I have tried that and it sometimes seems to work and sometimes not, giving me the literal ansible_fqdn expression without substituting it.

2

Ansible group_vars files are designed to define variables with corresponding values that may be dependent of other variables defined previously. As such they act as constants that your playbook can use based on some conditions (OS distro, OS version, ...).
The facts are relative to the nodes your playbook is acting on, they can be used inside playbooks but are not available in the group_vars files.

Now, back to your use-case, it's possible to define fact dynamically in a playbook and use it in your tasks:

- name: define the link fact based on ansible_fqdn
  set_fact: link="http://{{ ansible_fqdn }}:8070/api"

- debug: msg="link = {{ link }}"

- debug: var=link

Please have a look here for more details.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.