gpt4 book ai didi

ruby - Capistrano:如何在多个项目 deploy.rb 文件中包含通用设置

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:31 26 4
gpt4 key购买 nike

这可能是一个新手 ruby​​ 问题。我有几个库和应用程序需要部署到多个不同的主机。所有应用程序和库都将共享这些主机的一些通用设置——例如主机名、数据库服务器/用户/密码等

我的目标是做这样的事情:

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 文件中,并根据需要覆盖任何“通用”配置参数。任何建议,将不胜感激。我尝试了一些不同的东西,但我从 cap 中得到了所有这些错误。

编辑:我试过了

require 'my_module'

但是我收到关于未定义任务对象的错误。

最佳答案

我只是对它进行了更多的试验,我发现你必须:

load 'config/my_module'

我可以将所有常用定义放在这里,然后将其加载到我的 deploy.rb 中。

从文档中可以看出 load 加载并执行了文件。或者,需要尝试加载指定的库。我不完全确定真正的区别,但看起来当前应用程序符号空间和所需的库之间存在一些分离(因此出现关于未定义任务对象的错误),这在你执行 a 时不是问题加载。

关于ruby - Capistrano:如何在多个项目 deploy.rb 文件中包含通用设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com