我正在尝试将现有行之后的节点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
我是红宝石和厨师的新手。提前感谢您的帮助。
答案 0 :(得分:1)
FileEdit是Chef的内部类,不属于我们的公共接口。看看社区烹饪书,比如poise-file和line。