Ansible:比较变量

Ansible: compare variables

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

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}}'

感谢您的提前指教。

使用 {{ 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