根据具有子项的组更改Ansible模板中的变量?

时间:2017-03-22 14:57:30

标签: ansible jinja2 ansible-2.x

我找到了Change variable in Ansible template based on group。但是,如何在有孩子的小组中扩展答案?

如果我将上述链接中的group vars文件扩展到

[host0]
host0.my-network.com
[host1]
host1.my-network.com

[es-masters:children]
host0
host1

如何扩展上述帖子的答案(如下所示),使其适用于上述的组变量文件?简单地将FQDN放在jinja2语句中是行不通的。

{% if ansible_fqdn in groups['es-masters'] %}
node_master=true
{% else %}
node_master=false
{% endif %}

1 个答案:

答案 0 :(得分:0)

你应该做的是:
提供模板中的默认值

# role_name/templates/template.j2
node_master={{ role_name_node_master | default(true) }}

在group_vars中覆盖

# group_vars/es-masters.yml
role_name_node_master: false