如何使用 jinja2 获取名称中带有 var 的 var 值



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

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

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

但是您会在第三个VaR
中出现错误(IP:{{ ansible_{{ ka_interface }}.ipv4.address }} )

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

使用 Jinja2 语法无法构造动态变量。

但是,您可以通过 builit-invars哈希对象访问任何播放绑定变量:

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

编辑:固定哈希语法

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

相关内容

  • 没有找到相关文章

最新更新