使用Puppet配置ulimit

使用Puppet配置ulimit,puppet,ulimit,Puppet,Ulimit,我想知道如何使用Puppets exec类型运行ulimit命令。ulimit的问题似乎在于它不是二进制文件,因此必须在前面使用/bin/bash调用它。我正在尝试将核心文件大小更改为无限大小。我有这个,但不认识ulimit exec {"ulimit": command => "/bin/bash ulimit -c unlimited", } 我可以在命令行中执行'ulimit-c unlimited',它将毫无问题地更改值。问题是通过木偶来实现这一点。任何帮助都会很

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

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

我可以在命令行中执行'ulimit-c unlimited',它将毫无问题地更改值。问题是通过木偶来实现这一点。任何帮助都会很好。

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

<user>   soft   core   unlimited
<user>   hard   core   unlimited
软核无限
硬核无限

您可以使用类似于说明的辅助工具来执行此操作。不确定你的确切需要/使用情况,但至少考虑一下大街! 命令错误,应该是:

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

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

例如,如果您的puppet代理需要重新启动服务(“service myservice restart”),则该服务将从根用户和旧限制运行的puppet进程启动

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


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

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

* soft nofile 1000000
* hard nofile 250000
然后添加特定于用户的限制,例如针对httpd用户的限制

httpd hard nofile 100000
httpd soft nofile 25000
注意:在这种情况下,httpd不能超过系统上限(*),即使您给httpd用户一个更高的值,sysetm也不允许

进程可能需要重新启动(无需重新启动系统)以获取新值,但是您可以通过查看以下内容来再次检查它们是否已获取新值: $cat/proc//限制

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

另一种方法是安装并简单定义:

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

在您的puppet脚本中。

我使用puppet将这些行添加到limits.conf文件中,这很酷,但我无法使限制生效。我尝试了一切(重新启动、登录、编辑pam和ssh文件),自从我发布这篇文章以来,我一直在谷歌上。有什么想法吗?无论你试图修复什么,它都应该对重新启动的shell有效,例如重新启动应用程序、运行新进程、用户登录等。老实说,它并不完全知道会出什么问题。您能否说明您是如何确认这些设置没有生效的,或者您所做的任何其他故障排除导致了答案?它们没有生效,因为当我重新登录或重新启动时,ulimit不会更新,即使limits.conf文件是正确的。我还向su、sudo、ssh和登录/etc/pam.d/目录添加了一行“sessionrequired pam_limits.so”。我还将sshd_config设置为使用带有usePam yes项的pam。sysctl-p是否适用于您?您可能需要使用
require
notify
,以及在执行上述命令后应用更改的类似功能。谢谢,我会尝试一下。它不起作用。该命令已成功执行,但在重新登录ulimit时未更新。是否您使用的用户与用于执行该命令的Puppet用户不同?将user=>'name'添加到exec,其中name是您用于登录的用户。熟悉puppet使用的shell的人吗?这不是puppet的使用方式。使用这样的代码,每次运行木偶时(在修复命令后)限制都会更改。首选的方法是使用一些模块,这些模块仅在值与所需值不同的情况下执行操作。