如何编写模板以在zoo.cfg中自动编写“server.x = hostname:Quorom_Port:Election_Port”

时间:2015-02-23 09:54:54

标签: apache-zookeeper chef-recipe chef-template

我想" server.x =主机名:Quorom_Port:Election_Port"要使用基于attributes / default.rb文件中声明的数字主机的模板写入zoo.cfg的值

default['zookeeper']['servers'] = ["hostname1", "hostname2", "hostname3"]
default['zookeeper']['follower_port'] = 2888
default['zookeeper']['election_port'] = 3888

对于上述属性,应使用模板在zoo.cfg文件中自动写入以下值:

server.1= hostname1:2888:3888
server.2= hostname2:2888:3888
server.3= hostname3:2888:3888

请告诉我怎么做?

1 个答案:

答案 0 :(得分:0)

<%- if node['zookeeper']['servers'] %>
    <%- node['zookeeper']['servers'].each_with_index do |host, idx| %>
        server.<%= idx+1 %>=<%= host %>:<%= node['zookeeper']['follower_port']%>:<%= node['zookeeper']['election_port']%>
    <%- end %>
<%- end %>

上面的代码解决了这个问题。