我有几百个一次性服务器,它们具有需要存在于目录中的不同配置文件。文件的副本驻留在木偶主人上。
在我的一个类中,我有一组默认的配置,这些配置总是被推送到节点,如下所示:
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 不是很熟悉,但我觉得没有办法做到这一点。
你可以用这个来做你正在尝试的事情:
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,如果它们已经存在则覆盖。