我有一个文件,我想将其重复用于几个不同的目的。该文件在不同用途中 90% 相同,只是略有不同。我不想在 puppet 中的多个文件中复制内容,所以有没有办法做类似的事情
file { "/tmp/file1" :
content => template("module/template.erb")
}
file { "/tmp/file2" :
content => template("module/template.erb")
}
Run Code Online (Sandbox Code Playgroud)
在模板中:
Jack
John
James
<% if file == "/tmp/file2" %>
Jim
<% end %>
Run Code Online (Sandbox Code Playgroud)
你应该使用定义或参数化类,这样你就可以得到name你喜欢的东西(恕我直言,应该是一个定义):
define filename($template = "mytemplate.erb") {
file { $name:
content => template($template)
}
}
node 'host' {
filename { "/tmp/file1": }
filename { "/tmp/file2": }
}
Run Code Online (Sandbox Code Playgroud)
并将您的模板更正为:
Jack
John
James
<% if name == "/tmp/file2" %>
Jim
<% end %>
Run Code Online (Sandbox Code Playgroud)