这可能是一个新手红宝石问题。我有几个库和应用程序需要部署到几个不同的主机。所有的应用程序和库都将共享这些主机的一些通用设置——例如主机名、数据库服务器/用户/密码等。
我的目标是做类似的事情:
cap host1 stage deploy
cap host2 stage deploy
cap host1 prod deploy
# ...
我的问题是如何在所有 deploy.rb 文件中包含这些常用设置?更具体地说,我想创建一个我可以包含的 rb 文件,其中包含一些常见设置和几个特定于主机的任务定义:
set :use_sudo, false
# set some other options
task :host1 do
role :app, "host1.example.com"
role :web, "host1.example.com"
role :db, "host1.example.com", :primary => true
set :rodb_host, "dbhost"
set :rodb_user, "user"
set :rodb_pass, "pass"
set :rodb_name, "db"
end
task :host2 do
#...
end
deploy.task :carsala do
transaction do
setup
update_code
symlink
end
end
然后在我定义阶段、产品等的所有 deploy.rb 文件中“包含”这个文件,并根据需要覆盖任何“通用”配置参数。任何建议,将不胜感激。我已经尝试了一些不同的东西,但是我从所有的上限中得到了错误。
编辑:我试过了
require 'my_module'
但是我收到错误,抱怨未定义的任务对象。