Ruby 如何将不同的提供者与Chef deploy资源相结合?

Ruby 如何将不同的提供者与Chef deploy资源相结合?,ruby,chef-infra,chef-recipe,lwrp,Ruby,Chef Infra,Chef Recipe,Lwrp,我正在尝试创建一个部署应用程序的方法 我想和你的想法结合起来。此提供程序的自述文件表明,它易于与部署资源一起使用。然而,我不知道该怎么做 mercurial资源正在按预期工作: mercurial deploy[:deploy_to] do repository deploy[:scm][:repository] ssh_key "/home/vagrant/.ssh/authorized_keys" ssh_ignore true branch true

我正在尝试创建一个部署应用程序的方法

我想和你的想法结合起来。此提供程序的自述文件表明,它易于与部署资源一起使用。然而,我不知道该怎么做

mercurial资源正在按预期工作:

  mercurial deploy[:deploy_to] do
    repository deploy[:scm][:repository]
    ssh_key "/home/vagrant/.ssh/authorized_keys"
    ssh_ignore true
    branch true
    revision deploy[:scm][:revision]
    user deploy[:user]
    group deploy[:group]
    action :sync
  end
但是我和供应商之间有麻烦

  deploy deploy[:deploy_to] do
    repository deploy[:scm][:repository]
    user deploy[:user]
    group deploy[:group]
    revision deploy[:scm][:revision]
    environment deploy[:environment].to_hash
    scm_provider Chef::Provider::Mercurial
    action :deploy
  end
我得到的错误是
NoMethodError:Chef::Resource::Deploy的未定义方法'ssh\u key'。这可能是因为资源需要ssh_key属性。我不知道在使用部署资源时如何传递此属性

我怎么能做到这一点?
有人举过如何使用的例子吗?

你能粘贴完整的错误输出吗?是的,给你(我用星号替换了一些名称)很有趣。看起来像是ruby范围的东西。它调用了
@new\u resource.ssh\u key
,但是
@new\u resource
似乎指向的是部署资源,而不是mercurial或scm资源。这是我做错了什么,还是可能是一个bug?谢谢您的回复。我从repo所有者那里得到了以下反馈:“显然,我的fork需要更多的工作来将提供者的内部资源公开给部署资源。”他还建议创建一个fork,并在问题得到解决的情况下提交一个pull请求。我会尽量这样做。