2014-10-29 19 views
0

我正在尝试为repcached memcached制作模板。 此包含一行如下面Ansible使用库存组的模板变量

OPTIONS="-x 192.168.XXX.XXX -X 11212" 

凡192.168.XXX.XXX是库存组2名的条目中的一个。

基本上在2节点设置中,节点需要配置为指向库存组中的其他节点。

我一直在努力与jinja2模板试图让它使用(inventory_group - inventory_host),因为这会给我所需的价值,但我似乎无法找到一个有效的语法。

有人有什么建议吗?

回答

0

玩列表可能会让你感觉很差。我不确定这是否正确。值得注意的是,-运营商不会从列表中删除一个项目(有趣的是,+可以连接列表,因此将项目添加到列表中)。

话虽如此,我建议你照顾这个在您的模板,像这样(假设组被称为repcached):

{% for h in groups['repcached'] -%} 
{% if h != inventory_hostname %} 
OPTIONS="-x {{ hostvars[h]['ansible_default_ipv4']['address'] }} -X 11212" 
{% endif %} 
{% endfor %} 

你可能想,如果你想调整['ansible_default_ipv4']['address']部分来自其他来源的IP地址(请参阅ansible repcached -m setup输出以查看可用选项)。

当然,这只适用于repcached组中只有两台服务器的情况。如果群组中的物品数量不是2,则可以通过在Playbook中进行保护来添加保护措施。

+0

这就是我想要的欢呼声。 – cormpadre 2014-11-17 12:11:36