在group_vars/
中,我有三个文件对应库存组名:
all.yml
windows.yml
linux.yml
在windows.yml
我定义bot-os-user: MYDOMAIN\domainuser
.
在linux.yml
我定义bot-os-user: somelinuxuser
.
在all.yml
我定义ansible_user: {{ bot-os-user }}
.
问题是,像那样指定,Ansible 告诉我{{ ... }}
应该用双引号引起来。使用双引号, the{{ bot-os-user }}
永远不会被扩展,即它实际上保持不变{{ bot-os-user }}
,而预期结果ansible_user
具有bot-os-user
's 变量的值。
我错过了什么吗?我如何让它发挥作用?
PS 这实际上是关于重用变量来定义其他变量值,而不是其他东西。
有很多问题。请参阅下面的注释。除此之外,这里的问题是变量的定义,因此我将 ansible_user从问题重命名为my_ansible_user。
变量的扩展必须被引用并且变量bot_os_user必须存在。
my_ansible_user:“{{ bot_os_user }}”
如果播放中包含文件windows.yml和 linux.yml 中的任何一个或两个,则变量bot_os_user将存在
如果运行游戏的主机是组windows或linux的成员,则目录 group_vars/ 中的文件windows.yml或linux.yml将被包含。
例如:
下面的戏
给出:
笔记: