如何将yml文件和一个额外的参数传递给playbook.yml文件?

时间:2017-02-01 05:32:51

标签: ansible

我有一个bash脚本,其中playbook.yml的调用如下:

 ANSIBLE_FORCE_COLOR=true ansible-playbook -e 'host_key_checking=False' /vagrant/playbook.yml --extra-vars "@/vagrant/config.yml target=$server_name" -vvvv

因此,在上面的行中可以看到提到--extra-vars "@/vagrant/config.yml target=$server_name"并且它包含一个config.yml,它是另一个yml文件而另一个是target=$server_name的参数。现在问题是它的抛出错误如上所述config.yml在正确的位置,如果调用playbook.yml只有一个变量,如下所示它是正常的:

ANSIBLE_FORCE_COLOR=true ansible-playbook -e 'host_key_checking=False' /vagrant/playbook.yml --extra-vars "@/vagrant/config.yml" -vvvv

因此,请建议如何将两个变量传递给playbook.yml,以便它能够很好地执行。

2 个答案:

答案 0 :(得分:1)

只需重复--extra-vars参数即可。与定义host_key_checking的方式相同(-e--extra-vars同义):

ANSIBLE_FORCE_COLOR=true ansible-playbook playbook.yml -e "host_key_checking=False target=$server_name" -e "@/vagrant/config.yml" -vvvv

答案 1 :(得分:0)

可以使用@语法从yml文件加载额外的变量:

ANSIBLE_FORCE_COLOR=true ansible-playbook playbook.yml -e "host_key_checking=False target=$server_name" -e@/vagrant/config.yml -vvvv