尝试从ruby_block使用RemoteFile

rea*_*ate 2 chef-infra chef-recipe chef-solo

我试图使用我可以从互联网上拼凑的东西从ruby_block执行RemoteFile Provider.最终我对这个要点满意,给了我最好的模板.基本上从我在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
Run Code Online (Sandbox Code Playgroud)

但它给我的全部是这个错误:

[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 ""' 
Run Code Online (Sandbox Code Playgroud)

我不明白我到底做错了什么,我真的找不到任何人在网上任何地方做这样的事情的例子.

pun*_*kle 7

您正在使用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
Run Code Online (Sandbox Code Playgroud)