我在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, }