Ansible Jinja模板:多值未定义时如何使用default(omit)
正确写法及说明
你需要用嵌套的default过滤器来实现多值 fallback 的逻辑,正确代码如下:
url_username: "{{ download.username | default(offline_download | default(omit)) }}"
逻辑说明:
- 优先使用
download.username,如果它已定义且非空则直接取用; - 若
download.username未定义,自动切换检查offline_download; - 当
download.username和offline_download都未定义时,最终触发default(omit),让Ansible忽略该参数。
你的错误写法问题:
你之前把offline_download当成过滤器调用,但它实际是一个变量,Ansible不存在名为offline_download的内置过滤器,因此会触发语法错误。
内容的提问来源于stack exchange,提问作者Prashant
相关产品推荐
相关产品推荐

