2017-06-02 96 views
1

我使用Ansible 2.1.1.0。在Ansible中,有没有一种方法可以在动态变量命令中将动态变量设置为额外变量的group_vars/all文件中定义变量?如何在Ansible的“ansible-playbook extra variable”中定义一个“全局变量”?

我有我的play.sh文件如下。

ansible-playbook site.yml -i hosts -e "home_dir=$1" 

然后我想用它作为group_vars/all文件中的全局变量,如下所示。

my_dir: {{ home_dir }}/sub_dir/my_dir 

我知道上面的语法是错误的所有文件,这可以通过直接在任务YAML文件中使用变量来实现。有没有什么办法可以使用动态'安全剧本额外变量'来定义'全局变量'?

回答

1

我不知道global_vars在Ansible存在...

如果你想my_dir提供给所有的主机,您可以定义组变量为一个特殊的群体all,如:

文件./group_vars/all

my_dir: "{{ home_dir }}/sub_dir/my_dir" 

这样my_dir将根据home_dir额外的变量来构建和作为所有主机的组变量可用。

+0

对不起。我的错。它应该是“group_vars”;再加上,双引号就是诀窍。谢谢。 – ScrubJ