如何在命令行中将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