Chef infra 试图从ruby_块使用RemoteFile

Chef infra 试图从ruby_块使用RemoteFile,chef-infra,chef-recipe,chef-solo,Chef Infra,Chef Recipe,Chef Solo,我曾尝试从ruby_块执行远程文件提供程序,使用我可以从internet拼凑的东西。最终我决定给我最好的模板。基本上,根据我15天前的一条评论,以下代码应该可以工作: ruby_block "parse-json" do block do f = Chef::Provider::File::RemoteFile.new("/tmp/googlebackup", run_context) f.source "http://google.com" f.run_actio

我曾尝试从ruby_块执行远程文件提供程序,使用我可以从internet拼凑的东西。最终我决定给我最好的模板。基本上,根据我15天前的一条评论,以下代码应该可以工作:

ruby_block "parse-json" do
  block do
    f =  Chef::Provider::File::RemoteFile.new("/tmp/googlebackup", run_context)
    f.source "http://google.com"
    f.run_action :create
  end
  action :create
end
但它给我的只是一个错误:

[2014-03-28T14:26:08+00:00] ERROR: ruby_block[parse-json] (/tmp/kitchen/cookbooks/jenkins_build_artefact/providers/default.rb line 16) had an error: NoMethodError: No resource or method named `source' for `Chef::Provider::RemoteFile ""' 

我不明白我到底做错了什么,我在互联网上的任何地方都找不到任何人这样做的例子。

您使用的是Chef::Provider,而您应该使用的是Chef::Resource

ruby_block "parse-json" do
  block do
    f =  Chef::Resource::File::RemoteFile.new("/tmp/googlebackup", run_context)
    f.source "http://google.com"
    f.run_action :create
  end
  action :create
end