是否可以让 puppet 将递归和非递归更改合并到给定的目录

是否可以让 puppet 将递归和非递归更改合并到给定的目录

我在 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 当然会抱怨重复声明:File[/foo/bar]。

有没有办法在 puppet 中执行此操作,而不必明确执行顶层目录以及其下的所有文件和文件夹?

答案1

也只是将其作为答案:你不能。

namevar 参数是路径,因此不能有 2 个具有相同路径的文件资源。

检查文档关于文件资源。

答案2

未经测试,但是这应该可行:

对于第二个资源,只需将其命名为不同的名字并设置一个明确的小路

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

相关内容