如何在ansible中的变量中包含变量?

时间:2017-07-31 18:04:13

标签: ansible

我正在尝试推送属性文件模板,如下所示

schema.registry.url=http://{{ schemaregis_host{{ 
play_hosts.index(inventory_hostname) }} }}:8081

我在ansible输入命令

中传递了这些额外的变量
schemaregis0=host1
schemaregis1=host2

[inventory-hosts]
server1
server2

我希望server1属性文件具有schemaregis0=host1而server2具有另一个。

Ansible不喜欢变量中的变量。我怎么能绕过这个?

1 个答案:

答案 0 :(得分:0)

您可以通过访问vars dict:

来访问具有动态名称的变量
schema.registry.url=http://{{ vars['schemaregis' + play_hosts.index(inventory_hostname)|string] }}

但是如果你想为每个主机设置不同的值,最好的方法是使用host_vars configuration folder