Ansible 和事实相关变量

Ansible 和事实相关变量

Ansible 中的库存变量可以依赖于事实吗?

也就是说,我有一个变量,group_vars/all/cars.yml我想将其设置为依赖于的值ansible_fqdn。例如:

---

链接:“http://{{ ansible_fqdn }}:8070/api”

我尝试过,有时似乎有效,有时无效,它只给我文字 ansible_fqdn 表达式而不替换它。

答案1

Ansible组变量文件旨在定义具有相应值的变量,这些变量可能依赖于其他变量之前已定义。因此,它们充当常量你的剧本可以根据某些条件(操作系统发行版、操作系统版本等)使用。
这些事实与你的剧本所作用的节点有关,它们可以在内部使用剧本但无法在组变量文件。

现在,回到你的用例,可以定义事实动态地在剧本中并在您的任务中使用它:

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

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

- debug: var=link

请看一看这里更多细节。

相关内容