2013-05-14 49 views
3

我想在我的Puppet模塊之一的模板中包含一個子模板。以下是我如何在我的基本模板中包含這些內容:如何在Puppet模板中包含一個子模板

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

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

如果使用erb命令行工具進行渲染,此工作正常。然而,在Puppet運行期間,導入被默默地忽略,即基本模板在渲染的子模板應該是空行的情況下被渲染。沒有產生錯誤。

我在做什麼錯?謝謝!

回答

5

怎麼樣:

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

感謝您指出我在正確的方向!你的建議不能立即生效,但我可以在它上面建立起來,結果是:<%= scope.function_template(File.dirname(__ FILE__)+「/」+「subtemplate.erb」)%>'原因我不得不預先設置pwd,因爲原始模板嵌套在modules/templates目錄中的幾個子目錄中。 – svintus

+0

感謝您的回答!我有一個快速的問題;有沒有辦法避免subtemplate.erb文件的頭部註釋附加到調用erb?我們需要在subtemplate.erb中爲許可證頭使用什麼格式?謝謝! – imesh

相關問題