我需要使用 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