我希望 Ansible 2.6.2 任务使用变量的值var1(如果已设置),否则使用包含变量的字符串var2。然而,只会设置其中之一。如果我使用简单的{{ var1 | default(var2) }}它可以工作,但是当我尝试将字符串附加到var2Ansible 时,当未定义时会出现错误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 次 |
| 最近记录: |