是否可以使用 Puppet 来确保目录中存在多个文件而不定义所有文件?

Fre*_*shy 8 scripting puppet

我有几百个一次性服务器,它们具有需要存在于目录中的不同配置文件。文件的副本驻留在木偶主人上。

在我的一个类中,我有一组默认的配置,这些配置总是被推送到节点,如下所示:

file { "/etc/someprogram/config/000-default":
  ensure => "present",
  owner => "root",
  group => "root",
  mode =>  0764,
  source => "puppet:///modules/someprogram/000-default",
}
Run Code Online (Sandbox Code Playgroud)

我想要的是这样的:

$filearray = directory listing of /etc/puppet/modules/someprogram/files/$fqdn
with each file as an element into array

$filearray.each(
file { "/etc/someprogram/config/$filename":
  ensure => "present",
  owner => "root",
  group => "root",
  mode =>  0764,
  source => "puppet:///modules/someprogram/files/$fqdn/$filename",
}
)
Run Code Online (Sandbox Code Playgroud)

我对 puppet 不是很熟悉,但我觉得没有办法做到这一点。

mea*_*lag 8

你可以用这个来做你正在尝试的事情:

file { "/etc/someprogram/config":
    ensure => directory,
    recurse => remote,
    source => "puppet:///modules/someprogram/files/$fqdn"
    #Other options
}
Run Code Online (Sandbox Code Playgroud)

这会将 $fqdn 中的所有文件复制到 /etc/someprogram/config,如果它们已经存在则覆盖。