获取 Puppet 模板的文件名

获取 Puppet 模板的文件名

我有一个文件,我想重复使用它来做几个不同的用途。该文件 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

我还没有尝试过,但我想尝试一下。如果你尝试了,请告诉我结果如何。

相关内容