1

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

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

网络适​​配器有一个名为 ka_interface 的变量。

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

看来jinja2模板中的var是可以嵌套的。

4

2 回答 2

4

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

但是,您可以通过内置vars哈希对象访问任何播放绑定变量:

{{ vars['ansible_' + ka_interface]['ipv4']['address] }}

编辑:固定哈希语法

于 2017-07-17T08:44:13.923 回答
1

听从 Chris Lam 的建议,它有效 - name: test shell: echo {{ vars['ansible_' + ka_interface]['ipv4']['address'] }} tags: test

于 2017-07-19T15:00:56.360 回答