我正在创建一堆不同的 Chef 提供程序来部署不同类型的应用程序。Chef 的Extend a Lightweight Provider的文档表明这是可能的,但实际上并没有说明该怎么做。该页面表明可能需要调用mixin
,但我不知道我的代码应该在文件中具有什么结构,也不知道/libraries
如何将该代码实际包含在/providers
.
以下是我想做的例子。
在我的基类中/libraries
:
repository "http://my.svn.server/#{deployment[:project]}/branches/#{node[:chef_environment]}/"
user "deploy"
scm_provider Chef::Provider::Subversion
svn_username "svn_user"
svn_password "password"
在我的 Torquebox Rails 应用程序部署提供商中:
deploy_revision "/my/deployment/directory/#{deployment[:project]}" do
# Magically mixin the code from libraries
environment "RAILS_ENV" => node[:chef_environment]
restart_command "rake torquebox:deploy"
end
当然还有针对不同类型应用程序的其他类型的提供程序。
谁能指出我正确的方向?我缺少的地方有文档吗?