我希望 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: \"简单默认值:{{ 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 + '?') }}"
Run Code Online (Sandbox Code Playgroud)
错误消息很明确:解析器需要定义一个变量。
您可以使用相同的default
过滤器来提供默认值,而不是var2
:
msg: "Default with concatenation: {{ var1 | default(var2|default('') + '?') }}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14252 次 |
最近记录: |