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
我正在尝试比较一些变量,所以这是我的情况:
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