Назад | Перейти на главную страницу

Ansible и зависимые от фактов переменные

Может ли переменная инвентаря в Ansible зависеть от факта?

А именно у меня есть переменная в group_vars/all/cars.yml что я хотел бы установить значение, зависящее от ansible_fqdn. Подобно:

---

ссылка: "http: // {{ansible_fqdn}}: 8070 / api"

Я пробовал это, и иногда кажется, что это работает, а иногда нет, давая мне буквальное выражение ansible_fqdn без его замены.

Ansible group_vars файлы предназначены для определения переменных с соответствующими значениями, которые могут зависеть от других переменные определено ранее. Как таковые они действуют как константы что твой учебник можно использовать в зависимости от некоторых условий (дистрибутив ОС, версия ОС, ...).
Факты относятся к узлам, на которых действует ваш playbook, их можно использовать внутри пьесы но недоступны в group_vars файлы.

Теперь, возвращаясь к вашему варианту использования, можно определить факт динамично в playbook и используйте его в своих задачах:

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

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

- debug: var=link

Пожалуйста, посмотрите Вот Больше подробностей.