如何在命令行中将variables传递给正确的剧本?
我是新来的,不知道该怎么做,因为以下方法不起作用
ansible-playbook -i '10.0.0.1,' yada-yada.yml --tags 'loaddata' django_fixtures="tile_colors"
django_fixtures
是我的variables。
阅读文档,我find了在命令行上传递variables部分,给出了这个示例:
ansible-playbook release.yml --extra-vars "version=1.23.45 other_variable=foo"
其他示例演示了如何从JSONstring(≥1.2)或文件(≥1.3)
其他答案说明如何传递命令行variables,但不知道如何访问它们,所以如果你这样做:
--extra-vars "version=1.23.45 other_variable=foo"
在你的yml文件中,通过执行如下操作将这些分配给范围可变variables:
vars: my_version: "{{ version }}" my_other_variable: {{ other_variable }}
使用命令行参数的另一种方法是利用已经在会话中定义的环境variables,你可以在你的可靠的yml文件中引用这些:
vars: my_version: "{{ lookup('env', 'version') }}" my_other_variable: {{ lookup('env', 'other_variable') }}
您可以使用--extra-vars
选项。 看文档
ansible-playbook release.yml -e "version=1.23.45 other_variable=foo"
由于某种原因,上述答案都没有为我工作。 因为我需要在Ansbile 2.2.0中将几个额外的variables传递给我的手册,所以这就是我的工作原理(注意每个variables前面的-e选项):
ansible-playbook site.yaml -i hostinv -e firstvar=false -e second_var=value2