我想要完成的事情:
我想使用Jinja模板填写单行(见下文),具体取决于Ansible Inventory GroupMembership&variables .
通过使用下面描述的文件我试图完成,当 current host 是 group 1 的成员时,它应该用 ansible_variable_1 填充 config.xml . 或者当 current host 是 group 2 的成员时,它应该填充 ansible_variable_2 . 等等...
Jinja模板config.xml.j2:
<activedFilters userFilter="(&(sAMAccountName=%v)(objectcategory=user)(|(ansible_variable_1/2/3)))"/>
我已经尝试过使用 {% if inventory_hostname in groups['group 1'] %} {{ ansible_variable_1 }} {% elif inventory_hostname in groups['group 2'] %} {{ ansible_variable_2 }} {% endif %}
但是我不想使用a语句(?)来匹配正确的组到正确的变量 .
有人能指出我正确的方向吗?
Group_vars:
ansible_variable_1:
ansible_variable_2:
ansible_variable_3:
Ansible库存:
[group 1]
Server1.hostname.com
[group 2]
Server2.hostname.com
[group 3]
Server3.hostname.com
2 回答
我不明白为什么你想让你的生活更加艰难 . Ansible为您提供了组变量的机制,因此使用它:
在模板中:
或者你想要的输出看起来像什么 .
如果你想要一个循环而不是解决方案,它应该是: