如何使用 Puppet 创建一个用户及其大量文件?

如何使用 Puppet 创建一个用户及其大量文件?

我需要使用 Puppet 为该用户创建一个用户帐户和许多文件。

使用最直接的方法可以很好地工作,但是对于file我必须指定的每个资源owner => 'theuser',这似乎非常多余(如果我不这样做,它们最终将归 root 所有)。

有没有办法为所有者设置一个范围默认值?或者像 sudo 这样的操作,让 puppet 在该用户下运行特定资源集?

答案1

因此,如果所有内容都位于一个位置,则可以使用recurse文件选项

file { "/path/to/files/":
    ensure  => directory,
    recurse => true,
    owner   => "user",
    group   => "group",
    mode    => "700",
    source  => "puppet:///modules/moduleName/path/in/files/",
  }

然后把你的所有文件都放进去

模块/模块名称/路径/在/文件/

Puppet 会将该模块路径中的所有文件放入该用户/组拥有的系统上的 /path/to/files 中。

答案2

例如,为了减少owner属性,您可以添加一些默认值。

File {
  owner => 'user',
  group => 'somegroup',
  mode  => '0444'
}

file {
  '/some/where/file1': source => 'some-source1';
  '/some/where/file2': source => 'some-source2';
  '/some/where/file3': source => 'some-source3';
}

有关资源默认值的文档: https://puppet.com/docs/puppet/latest/lang_defaults.html

相关内容