chef - 替换sysctl.conf文件中的coredump参数

时间:2017-06-04 20:43:36

标签: chef

例如,我已经拥有核心转储的参数,即

kernel.core_pattern = /usr/local/core-%e.%t.%p.%u.%g

现在我想把它改成这个,即

kernel.core_pattern = /usr/local/core.%e.%p.%h.%t

mycode如下:

ruby_block "edit /etc/sysctl.conf" do
    block do
        file = Chef::Util::FileEdit.new("/etc/sysctl.conf")
        file.search_file_replace_line(/^kernel.core_pattern.*$/, "kernel.core_pattern=/usr/local/core.%e.%p.%h.%t")
        rc.write_file
    end
    not_if "grep 'kernel.core_pattern' /etc/sysctl.conf"

任何建议

1 个答案:

答案 0 :(得分:0)

不要使用FileEdit,它是Chef内部的API。在一般情况下,如果您必须进行就地编辑,请使用line或(免责声明:我的)poise-file食谱。也就是说,管理整个文件通常更安全。特别是在sysctls的情况下,它必须编辑一个文件,但我们有一个社区食谱(sysctl),可以处理这种情况下繁重的工作。