使用Chef替换动态文件中的行

时间:2018-06-29 15:52:17

标签: ruby proxy chef cookbook

在chef客户端运行期间,它将ruby安装为版本2.4.0的预定义软件包 我需要先更新文件,然后再运行任何收据 我在下面添加了recepe,但是看起来它不起作用,有人可以帮忙吗? ruby_block 'no_proxy_fix' do block do fe = Chef::Util::FileEdit.new('/opt/chef/embedded/lib/ruby/2.4.0/uri/generic.rb') fe.search_file_replace("IPAddr.new(host)", "IPAddr.new(host).include?(self.host)") fe.search_file_replace("end.include?(self.host)", "end") fe.write_file end end 我需要替换以下值

IPAddr.new(主机) IPAddr.new(主机).include?(self.host)

end.include?(self.host) end

1 个答案:

答案 0 :(得分:0)

FileEdit是Chef的内部API,不允许您在配方代码中使用它(阅读:不支持)。为此,请使用linepoise-file食谱。