Puppet:基于模板的多个文件

Pav*_* S. 5 puppet

我有几个文件需要由Puppet创建,所有文件都基于模板.举个例子:

/etc/my-project/a.ini
/etc/my-project/b.ini
/etc/my-project/c.ini
Run Code Online (Sandbox Code Playgroud)

我想要做的是在Puppet中使用一个语句来确保所有这些文件.像这样的东西:

define myFile {
  file { "/ect/init.d/$name.ini":
    ensure  => file,
    content => template("myProject/myFiles/$name.erb"),
  }
}

myFile { ['a', 'b', 'c']: }
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用(受如何在Puppet中迭代数组的启发).我在那里错过了什么?我如何访问文件名并使用它,如果不是$name

xia*_*kai 5

您的数组声明很好,但实际上您正在尝试创建多个模板,所有模板都具有不同的文件名$name.erb.您应该将其更改为固定的模板名称,例如template.erb.

另一件要确保的是您的模板文件位置正确.

  • 如果清单位于模块中,则模板应位于module_name/templates/template.erb并调用为template("module_name/file_under_template_directory")

  • 如果它是一个独立的清单,你必须改为完整的路径,template("fully_qualified_path_to_template_file").

最后,如果您仍然遇到错误,您应该使用错误消息更新您的问题,以便我们可以缩小原因范围.