【发布时间】:2013-04-13 10:16:40
【问题描述】:
我正在创建一堆不同的 Chef 提供程序来部署不同类型的应用程序。 Extend a Lightweight Provider 的 Chef 文档表明这是可能的,但实际上并没有说明该怎么做。该页面表明可能需要调用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
当然还有针对不同类型应用程序的其他类型的提供程序。
谁能指出我正确的方向?是否有我遗漏的文档?
【问题讨论】:
标签: chef-infra