获取人偶模板的文件名

Noo*_*les 4 puppet template

我有一个文件,我想将其重复用于几个不同的目的。该文件在不同用途中 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)

Tor*_*ian 5

你应该使用定义或参数化类,这样你就可以得到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)