You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible Jinja模板无法访问find注册变量报list object has no element

错误原因定位

你写Jinja循环时存在变量使用偏差:

  • 执行{% for user in user_list.files %}循环时,user本身就是user_list.files列表里存储的每个用户目录的字典对象,不是列表的索引值
  • 你后续写的user_list.files[user]['gr_name'],相当于把拿到的字典对象反过来当列表的取数下标,列表不支持这种非数字的索引操作,因此触发了AnsibleUndefinedVariable: list object has no element的报错
修正方案

直接用循环拿到的user变量取需要的字段即可,修正后的模板如下:

#Realtime scanning of downloads folder
{% for user in user_list.files %}
OnAccessIncludePath /home/{{ user.gr_name }}/Downloads
{% endfor %}
OnAccessIncludePath /media

补充:Jinja模板支持两种字典取值方式,user.gr_name和user['gr_name']效果完全一致,前者写法更简洁。


内容的提问来源于stack exchange,提问作者chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 14:45:04