我正在使用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