使用Puppet配置ulimit

时间:2013-03-25 14:11:13

标签: puppet ulimit

我想知道如何使用Puppets exec类型运行ulimit命令。 ulimit的问题似乎是它不是二进制文件所以必须在它前面使用/ bin / bash调用它。我试图将核心文件大小更改为无限制。我有这个,但不承认ulimit。

exec {"ulimit":
        command => "/bin/bash ulimit -c unlimited",
}

我可以在命令行中执行'ulimit -c unlimited',它会更改值没问题。问题是通过Puppet这样做。任何帮助都会很棒。

5 个答案:

答案 0 :(得分:2)

我建议尝试使用 /etc/security/limits.conf 进行此更改,例如:

<user>   soft   core   unlimited
<user>   hard   core   unlimited

您可以使用与说明found here类似的Augeas。不确定您的确切需求/用例,但至少要考虑大道!

答案 1 :(得分:1)

其他方法是安装erwbgy puppet module并简单定义:

include limits
limits::entry { 'my-limits':
    domain => $user,
    type   => 'soft',
    item   => 'core',
    value  => 'unlimited',
}

在你的木偶剧中。

答案 2 :(得分:0)

命令错误,应该是:

command => "/bin/bash -c 'ulimit -c unlimited'"

答案 3 :(得分:0)

如果使用/etc/security/limits.conf更改限制,则必须重新启动进程以使其使用新限制。

例如,如果您的木偶代理需要重新启动服务(“service myservice restart”),则服务将从与root用户一起运行的puppet进程启动,并具有旧限制。

因此,/ etc / init.d中服务的服务init脚本必须强制登录,例如使用“su”或“sudo”更改用户,以使用新限制强制服务。

请参阅http://linux.die.net/man/5/limits.conf

“另外,请注意,所有限制设置都是按照登录设置的。它们不是全局的,也不是永久性的;仅在会话期间存在。”

答案 4 :(得分:0)

将系统范围的ulimit(root)增加到您喜欢的最高值

* soft nofile 1000000
* hard nofile 250000

然后添加用户特定的限制,例如对于httpd用户

httpd hard nofile 100000
httpd soft nofile 25000

注意:在这种情况下,httpd不能超过系统上限(*),sysetm将不允许它,即使你给了httpd用户更高的值

可能需要重新启动进程(无需重新启动系统)才能获取新值,但是您可以通过查看以下内容来仔细检查是否已经提取了它们:      $ cat / proc // limits

如果没有,则只需重新启动该过程。