我试图在现有行之后使用节点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。