Ansible:有没有办法让变量没有默认值?
我有一些VAR:Ansible:有没有办法让变量没有默认值?,ansible,ansible-playbook,Ansible,Ansible Playbook,我有一些VAR: vars: var1: foo var2: bar 我希望有一个var3,但我希望它被设置为运行时 我不想使用vars\u提示符,因为这需要用户干预 我想强制在调用这个剧本时,使用一个--额外的vars var3=bat来调用它 我不想只是在某个地方引用{{var3}},因为我喜欢这个剧本有点自我记录的想法 我宁愿不做一些include\u vars文件,除非这是这种情况所要求的,并且是标准的 我认为以下情况是不允许的: vars: var1: fo
vars:
var1: foo
var2: bar
我希望有一个var3,但我希望它被设置为运行时
- 我不想使用
,因为这需要用户干预李>vars\u提示符
- 我想强制在调用这个剧本时,使用一个
来调用它李>--额外的vars var3=bat
- 我不想只是在某个地方引用
,因为我喜欢这个剧本有点自我记录的想法李>{{var3}}
- 我宁愿不做一些
文件,除非这是这种情况所要求的,并且是标准的李>include\u vars
- 我认为以下情况是不允许的:
vars: var1: foo var2: bar var3
我该怎么办 可能是
assert
作为解决方法是否足够好?它提供了剧本的良好可读性。
将其添加为您的第一个任务:
- assert:
that:
- var3 is defined
- var3 in ['one', 'two', 'three']
这似乎是一个很棒的解决方法!你能想到其他的吗?我很好奇它们是否存在。不,我通常是这样做的。如果你希望它是自我记录的,这就是如何做到的。否则,只需使用剧本中的变量,并在自述文件中给出说明。如果他们不包括它,Ansible将为未定义的var抛出一个错误。