Ansible group_vars支持Jinja吗?no_proxy列表转字符串报错求助
解决方案
你的需求完全可行,问题出在模板语法错误——Jinja2模板中不需要用*来引用YAML锚点定义的变量,直接使用变量名即可。
正确的配置写法
no_proxy: &no_proxy - url1 - url2 proxy_server: &proxy_server "http://squid:3128" proxy_env: http_proxy: *proxy_server https_proxy: *proxy_server ftp_proxy: *proxy_server no_proxy: "{{ no_proxy | join(',') }}"
关键说明
- YAML锚点
&no_proxy已经将列表绑定到变量no_proxy,在Jinja2模板表达式({{ ... }})里直接调用变量名即可,*是YAML层面的锚点引用符号,不适用于Jinja2语法。 - 通过
join(',')过滤器会把列表元素拼接成逗号分隔的字符串,正好符合no_proxy环境变量的格式要求。 - 配置生效后,
proxy_env.no_proxy会被渲染为url1,url2,get_url任务使用该environment时就能正确应用代理排除规则。
内容的提问来源于stack exchange,提问作者GuyMatz
相关产品推荐
相关产品推荐

