![获取 Puppet 模板的文件名](https://linux22.com/image/596835/%E8%8E%B7%E5%8F%96%20Puppet%20%E6%A8%A1%E6%9D%BF%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D.png)
我有一个文件,我想重复使用它来做几个不同的用途。该文件 90% 的用途相同,只有细微的差异。我不想在 Puppet 中的多个文件中复制内容,那么有没有办法做类似的事情
file { "/tmp/file1" :
content => template("module/template.erb")
}
file { "/tmp/file2" :
content => template("module/template.erb")
}
在模板中:
Jack
John
James
<% if file == "/tmp/file2" %>
Jim
<% end %>
答案1
您应该使用定义或参数化类,这样您就可以得到name
您喜欢的东西(恕我直言,应该是一个定义):
define filename($template = "mytemplate.erb") {
file { $name:
content => template($template)
}
}
node 'host' {
filename { "/tmp/file1": }
filename { "/tmp/file2": }
}
并将模板更正为:
Jack
John
James
<% if name == "/tmp/file2" %>
Jim
<% end %>
答案2
听起来您想从片段中构建一个配置文件?
http://projects.puppetlabs.com/projects/puppet/wiki/Generating_a_config_file_from_fragments
我还没有尝试过,但我想尝试一下。如果你尝试了,请告诉我结果如何。