如何使用jinja2获取var值的var值

时间:2017-07-17 06:55:53

标签: ansible jinja2 ansible-template

我正在使用 ansible 来模板化jinja2文件。

IP:{{ ansible_eth0.ipv4.address }}
IP:{{ ansible_docker0.ipv4.address }}
IP:{{ ansible_{{ ka_interface }}.ipv4.address }}

网络适配器有一个名为ka_interface的var。

但是你会在第3版中得到错误 (IP:{{ ansible_{{ ka_interface }}.ipv4.address }} )

似乎jinja2模板中的var可以嵌套。

2 个答案:

答案 0 :(得分:4)

使用Jinja2语法构造动态变量是不可能的。

但是,您可以通过内置list哈希对象访问任何播放限制变量:

vars

修改:修正哈希语法

答案 1 :(得分:1)

按照Chris Lam的建议, 有用 - name: test shell: echo {{ vars['ansible_' + ka_interface]['ipv4']['address'] }} tags: test