我正在尝试创建一个配方来部署应用程序。
我想将Chef deploy 资源与Chef Mercurial provider结合起来。该提供程序的自述文件表明它很容易与部署资源一起使用。但是,我不确定如何执行此操作。
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: undefined method 'ssh_key' for Chef::Resource::Deploy
. 这可能是因为资源需要 ssh_key 属性。我不知道在使用部署资源时如何传递此属性。
我怎样才能使这项工作?有没有人举例说明如何将 Chef 部署资源与Chef Mercurial 提供程序一起使用?