我有这个库存文件
库存/ hosts_elk
[elk-client-0]
10.11.22.22
现在我有了一个模板,我想这样做
elk_server.yml.j2
elk_server = {{ elk-client-0 }}
但这不起作用,即{{elk-client-0}}的值不会被取代。
正确的语法是什么,所以当模板在服务器上布局时,生成的文件看起来像
elk_server = 10.11.22.22
答案 0 :(得分:4)
神奇的语法是
elk_server: {{ groups['elk-client-0'][0] }}
答案 1 :(得分:0)
我认为您正在寻找inventory_hostname
和/或ansible_hostname
http://docs.ansible.com/ansible/playbooks_variables.html
答案 2 :(得分:0)
就安全清单而言,elk-client-0
是一个托管组,可通过groups.<name>
访问。
具体来说,您想要查找特定主机组的清单中的第一个(或最后一个?)主机,因此您可以在模板中执行此操作:
elk_server = {{groups.elk-client-0|random}}
从“现在”开始,将始终返回1项。
但是当你的主机组成长时,它会掷骰子。
如果您需要始终first
,last
,请使用这些过滤器。