Ansible:比较变量

时间:2017-08-09 14:59:34

标签: ansible ansible-2.x ansible-inventory

我正在尝试比较一些变量,所以这是我的情况:

pg_master_ip显然是一个IP。

ansible不解析pg_master_ip

bond0.stdout是早期注册任务的结果。

如果我可以使用{{ hostvars[inventory_hostname]['ansible_bond0'].ipv4.address }}我会更快乐,但我不知道如何。

- name: pgsql and pgpool initiate master
  include: master.yml
  when: bond0.stdout == '{{pg_master_ip}}'

提前感谢您的建议。

1 个答案:

答案 0 :(得分:3)

使用{{ hostvars[inventory_hostname][some_variable] }}是多余的。您只需使用{{ some_variable }}即可。在这种情况下,它将是{{ ansible_bond0.ipv4.address }}。如果您需要完整的默认事实列表,请查看setup module

ansible $SERVER -m setup

以下是条件任务的外观

- name: pgsql and pgpool initiate master
  include: master.yml
  when: ansible_bond0.ipv4.address == pg_master_ip