Ansible中的库存variables可以依赖于事实吗?
也就是说,我在group_vars/all/cars.yml中有一个variables,我想设置一个依赖于ansible_fqdn的值。 喜欢:
—
链接:“http:// {{ansible_fqdn}}:8070 / api”
我已经尝试过,它有时似乎工作,有时甚至没有,给我的文字ansible_fqdnexpression而不是替代它。
Ansible group_vars文件被devise为用相应的值定义variables,这些variables可能取决于之前定义的其他variables 。 因此,它们可以作为您的Playbook可以基于某些条件(操作系统发行版,操作系统版本…)使用的常量 。
事实是相对于你的剧本的行为节点,他们可以在剧本中使用,但在group_vars文件中不可用。
现在,回到您的使用案例,可以在剧本中dynamic定义事实并将其用于您的任务:
- name: define the link fact based on ansible_fqdn set_fact: link="http://{{ ansible_fqdn }}:8070/api" - debug: msg="link = {{ link }}" - debug: var=link
请在这里看看更多的细节。