我在Amazon Linux 2012.09上使用Puppet 3,我的一个清单设置并重新配置一些目录.其中一个任务就是将文件夹所有者和组recursivelt更改为另一个用户 - 但是,这需要60秒才能完成,目录中几乎没有任何东西 - 终端中的chuser myuser:myuser/var/lib/jenkins不到一秒钟.
我的问题是:在Puppet中是否有更好/更快的方式来递归更改目录所有权?
谢谢
file {'/var/lib/jenkins':
ensure => 'directory',
owner => myuser,
group => myuser,
recurse => true,
require => Package['jenkins'],
}
Run Code Online (Sandbox Code Playgroud)
我也看到了这种缓慢,这似乎是由于 Puppet/var/lib/jenkins单独检查每个文件以确保它具有正确的所有者权限,这需要时间,因为$JENKINS_HOME.
我在 Jenkins 服务器上解决了这个问题,只要顶级目录不属于所需用户,就运行一个简单的chown -R命令(使用):exec
define modify_owner() {
exec { "modify_owner_${title}" :
command => "/bin/chown -R ${user}:${user} '${title}'",
onlyif => "/usr/bin/stat -c %U '${title}' | grep '^${default_user}$'"
}
}
modify_owner { ['/var/lib/jenkins', '/var/log/jenkins', '/var/cache/jenkins']: }
Run Code Online (Sandbox Code Playgroud)
$user/是我希望这些目录拥有的$user所有者/组组合。这让我的傀儡时间回到了正常水平。
(注意:我使用过,stat -c %U但您可能需要根据您的操作系统调整确切的格式选项。此命令打印所有者的文本名称,并在 Linux 上为我工作。)
| 归档时间: |
|
| 查看次数: |
915 次 |
| 最近记录: |