3

我正在尝试在我的一个 Puppet 模块的模板中包含一个子模板。这是我在基本模板中包含的方法:

<%
  def import(fname)
    erb =
      File.open(File.dirname(__FILE__) + "/" + fname) { |fp| ERB.new(fp.read) }
    erb.run
  end
%>

<%= import("subtemplate.erb") %>

如果我使用 erb 命令行工具渲染它,这可以正常工作。然而,在 Puppet 运行期间,导入被静默忽略,即基本模板在渲染子模板应该存在的地方用空行渲染。没有产生错误。

我究竟做错了什么?谢谢!

4

2 回答 2

8

函数的参数需要是一个数组(>=puppet-3):

scope.function_foo(["bar"])

http://docs.puppetlabs.com/guides/templating.html#using-functions-within-templates

于 2013-12-30T14:19:36.970 回答
6

怎么样:

 <%= scope.function_template("subtemplate.erb") %>
于 2013-05-21T10:35:23.443 回答