How to include a subtemplate in a Puppet template

笑着哭i 提交于 2019-12-09 19:43:33

问题


I'm trying to include a subtemplate in a template for one of my Puppet modules. Here's how I do the include in my base template:

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

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

This works fine if I render it with erb command-line tool. However, during the Puppet run the import is silently ignored, i.e. the base template is rendered with a blank line where the rendered subtemplate should be. There are no errors generated.

What am I doing wrong? Thanks!


回答1:


how about:

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



回答2:


argument to the function needs to be an array (>=puppet-3):

scope.function_foo(["bar"])

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



来源:https://stackoverflow.com/questions/16551717/how-to-include-a-subtemplate-in-a-puppet-template

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!