如何从puppet

时间:2016-10-31 22:40:35

标签: puppet erb

我想使用puppet在文件中添加一些值,但是当我在ruby模板中执行以下操作时:

    <% @_zoo_cfgs.each do |zooconfig| -%>
    <%=zooconfig -%>
    <% end -%>

我在生成的文件中获得以下内容:

server.1=a1-dev-mem333.lab.lynx-connected.com:2888:3888(trailing whitespace)

但我想要以下内容:

server.1=a1-dev-mem333.lab.lynx-connected.com:2888:3888(no trailing whitespace)

在值之前或之后文件中没有额外的空格。谁能告诉我怎么能这样做呢?

2 个答案:

答案 0 :(得分:4)

当您使用-%>关闭ERB代码时,将禁止在结束标记后面的任何换行符 。但是,如果下一个字符是其他任何字符,例如空格字符,则没有抑制。在您的情况下可能更重要的是,在任何情况下都不会抑制模板的以下行中的前导空格。

至少有两种方法可以处理这种情况。

  • 删除缩进(并确保模板中没有拖尾空格):
<% @_zoo_cfgs.each do |zooconfig| -%>
<%=zooconfig -%>
<% end -%>
  • 完全摆脱迭代,可能是这样的:
<%# assumes that @_zoo_cfgs is an array: -%>
<%= @_zoo_cfgs.join("\n") -%>

答案 1 :(得分:0)

如果空格是变量值的一部分,请使用Ruby字符串函数去掉它,例如。

<%= zooconfig.rstrip %>