【发布时间】:2018-08-16 07:56:24
【问题描述】:
我希望 Ansible 2.6.2 任务使用变量 var1 的值(如果已设置),否则使用包含变量 var2 的字符串。但是,只会设置其中之一。如果我使用简单的{{ var1 | default(var2) }} 它可以工作,但是当我尝试将字符串附加到var2 时,Ansible 会在var2 未定义时给出错误,即使var1 是:
失败了! => {"msg": "该任务包含一个带有未定义变量的选项。错误是:'var2' 未定义\n\n错误似乎出现在 'test.yml':第 13 行第 7 列,但是可能\n位于文件中的其他位置,具体取决于确切的语法问题。\n\n违规行似乎是:\n\n msg: \"Simple default: {{ var1 |默认(var2) }}\"\n - 调试:\n ^ 这里\n"}
剧本:
- hosts: all
gather_facts: false
connection: local
vars:
var1: "one"
# var2: "two"
tasks:
- debug:
# This works
msg: "Simple default: {{ var1 | default(var2) }}"
- debug:
# This fails when var2 is undefined, even though var1 is
msg: "Default with concatenation: {{ var1 | default(var2 + '?') }}"
【问题讨论】:
标签: ansible