是否有可能让傀儡将recursion和非recursion更改结合到一个给定的目录

我在debian上使用puppet 3.8.4。 我想recursion设置所有者和组设置目录,但只设置目录本身的权限,即。 我不想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会抱怨一个重复的声明:File [/ foo / bar]如果你这样做的话。

有没有办法在木偶做到这一点,而不必做顶层目录,然后明确下所有的文件和文件夹?

只是把它作为一个答案也:你不能。

namevar参数是path,所以不能有两个具有相同path的文件资源。

检查有关文件资源的文档: https : //docs.puppetlabs.com/references/latest/type.html#file

没有testing,但这应该工作:

对于第二个资源,只需以不同的名称命名并设置一个显式path :

 file {"/foo/bar_root": path => "/foo/bar", ensure => directory, mode => 0640, # +x automatically added to directories recurse => false, }