如何定义一个;全局变量";从一个;ansible playbook额外变量“;在Ansible?

如何定义一个;全局变量";从一个;ansible playbook额外变量“;在Ansible?,ansible,global-variables,Ansible,Global Variables,我使用的是Ansible 2.1.1.0。在Ansible中,是否有方法在组变量/all文件中定义一个变量,并在Ansible playbook命令中将动态变量设置为额外变量 我的play.sh文件如下 ansible-playbook site.yml -i hosts -e "home_dir=$1" my_dir: {{ home_dir }}/sub_dir/my_dir 然后,我想将其用作group_vars/all文件中的全局变量,如下所示 ansible-playbook si

我使用的是Ansible 2.1.1.0。在Ansible中,是否有方法在组变量/all文件中定义一个变量,并在Ansible playbook命令中将动态变量设置为额外变量

我的play.sh文件如下

ansible-playbook site.yml -i hosts -e "home_dir=$1"
my_dir: {{ home_dir }}/sub_dir/my_dir
然后,我想将其用作group_vars/all文件中的全局变量,如下所示

ansible-playbook site.yml -i hosts -e "home_dir=$1"
my_dir: {{ home_dir }}/sub_dir/my_dir
我知道上面的语法对于all文件是错误的,这可以通过直接在task yaml文件中使用变量来实现。有没有办法用动态的“ansible playbook额外变量”来定义“全局变量”?

我不知道ansible中是否存在全局变量

如果要使所有主机都可以使用
my_dir
,可以为特殊组
all
定义组变量,如:

文件
/group\u vars/all

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

通过这种方式,
my_dir
将基于
home_dir
额外变量构建,并可作为所有主机的组变量使用。

。我的错。它应该是“组变量”;另外,是的,双引号起作用。谢谢。有没有不创建目录的方法?我想使用ansible includes。。。我不喜欢为单个配置文件创建目录是的,在组
all
的主清单文件中定义
my_dir