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
请看一看这里更多细节。