我得到错误" TemplateError(没有将String隐式转换为整数)"当我把循环放在厨师的模板文件中时

时间:2018-03-28 03:56:43

标签: loops templates chef

这是我的属性文件。我想通过循环获取wka成员的详细信息。

default["clustering"] = {
        "enabled"           => true,
        "membership_scheme" => 'wka',
        "domain"            => 'wr.as.domain',
        "local_member_host" => '10.100.4.777',
        "local_member_port" => '4000',
        "sub_domain"        => 'mgt',
        "wka"               => {
            "members" => [
              {
                "hostname" => '10.100.4.555',
                "port"     => 4000
              },
             {
                "hostname" => '10.100.4.556',
                "port"     => 4000
             }
            ]
        }
    }

这是我的模板文件

<members>
         <%= node["clustering"]["wka"]["members"].each do |member| -%>
            <member>
                <hostName><%= member['hostname'] %></hostName>
                <port><%= member['port'] %></port>
            </member>
          <% end %>
        </members>

有人可以为我提出正确的解决方案吗?

1 个答案:

答案 0 :(得分:2)

对于模板中的非打印位,如循环或条件,您使用n<%(后者修剪额外的空格,通常是您想要的),而不是<%-