厨师/Ruby如果没有匹配项,则在一些文本后添加IP



我试图在现有行之后使用节点IP添加一条线,以在配置文件中。第一次运行食谱时,一切顺利,但是第二次检查匹配(我试图避免使用IF语句复制行(,它向我显示了错误。这是食谱代码样本:

IP=node['ipaddress']
ruby_block 'Inesrt IP' do
if File.readlines('file.conf').grep(/#{IP}/).size < 1
        block do
                file = Chef::Util::FileEdit.new("file.conf")
                file.insert_line_after_match(/someline/, "TCPAddr #{IP}")
                file.write_file
        end
end
end

这是错误:

NoMethodError
    -------------
    undefined method `call' for nil:NilClass

我是Ruby and Chef的新手。预先感谢您的帮助。

fileedit是厨师的内部类,也不是我们公共接口的一部分。查看社区食谱,例如Porise-File和Line。

最新更新