我在 debian 上使用 puppet 3.8.4。我想在一个设置的目录上递归地设置所有者和组,但只设置目录本身的权限,即。我不想 chmod 目录中的任何内容,只 chown/chgrp 它。
我尝试了以下...
file {[
"/foo/bar" ,
] :
ensure => directory,
owner => root,
group => bar,
recurse => true,
require => [
User[root],
Group[bar],
],
}
file {[
"/foo/bar" ,
] :
ensure => directory,
mode => 0640, # +x automatically added to directories
recurse => false,
}
但是当然 puppet 会抱怨 Duplicate declaration: File[/foo/bar] 如果你这样做。
puppet 有没有办法做到这一点,而不必执行顶级目录,然后明确地执行其下的所有文件和文件夹?
只是把它作为一个答案:你不能。
namevar 参数是路径,因此您不能有 2 个具有相同路径的文件资源。
检查有关文件资源的文档。
未经测试,但这应该可以工作:
对于第二个资源,只需将其命名为不同的名称并设置一个显式路径: