AnsibleError:模板化字符串时模板错误:应为标记';打印结束语句';,得到';{';
下面是一个任务,它向我抛出了一个错误,因为jinja2模板不支持这个AnsibleError:模板化字符串时模板错误:应为标记';打印结束语句';,得到';{';,ansible,jinja2,Ansible,Jinja2,下面是一个任务,它向我抛出了一个错误,因为jinja2模板不支持这个 name: Print the ip address debug: msg: "{{ ansible_{{ item }}['ipv4']['address'] }}" with_items: "{{ ansible_interfaces|reject('search', 'lo')|list|sort }}" 引发的错误是: "msg": "
name: Print the ip address
debug:
msg: "{{ ansible_{{ item }}['ipv4']['address'] }}"
with_items: "{{ ansible_interfaces|reject('search', 'lo')|list|sort }}"
引发的错误是:
"msg": "template error while templating string: expected token 'end of print statement', got '{'. String: {{ ansible_{{ item }}['ipv4']['address'] }}"
有关于如何解决此问题的指针吗?当您已经在jinja2扩展表达式中时,您不能使用jinja2扩展。在这种特殊情况下,您可以使用获取动态命名的变量:
-名称:打印ip地址
变量:
接口变量名称:“ansible{{{item}”
调试:
msg:“{{查找('vars',接口_var_name)['ipv4']['address']}”
带|项:{{ansible|interfaces | reject('search','lo')| list | sort}”
使用查找
插件变量
-名称:打印ip地址
调试:
msg:{{my_ifc.ipv4.address}默认('Undefined')}
循环:{{ansible|U接口|拒绝('search','lo')|列表|排序}
变量:
my_ifc:“{{lookup('vars','ansible_'~item)}”
给予
ok: [localhost] => (item=eth0) =>
msg: 10.1.0.27
ok: [localhost] => (item=wlan0) =>
msg: Undefined