Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AnsibleError:模板化字符串时模板错误:应为标记';打印结束语句';,得到';{';_Ansible_Jinja2 - Fatal编程技术网

AnsibleError:模板化字符串时模板错误:应为标记';打印结束语句';,得到';{';

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": "

下面是一个任务,它向我抛出了一个错误,因为jinja2模板不支持这个

 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