如何在Puppet模板中包含子模板

时间:2013-05-14 19:51:54

标签: erb puppet

我正在尝试在我的一个Puppet模块的模板中包含一个子模板。以下是我在基本模板中执行include的方法:

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

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

如果我使用erb命令行工具渲染它,这可以正常工作。但是,在Puppet运行期间,将默默忽略导入,即基本模板使用空白行渲染,其中渲染的子模板应该是。没有生成错误。

我做错了什么?谢谢!

2 个答案:

答案 0 :(得分:7)

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

scope.function_foo(["bar"])

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

答案 1 :(得分:5)

怎么样:

 <%= scope.function_template("subtemplate.erb") %>