加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:57:23 所属栏目:百科 来源:网络整理
导读:这可能是一个新手ruby问题.我有几个库和应用程序需要部署到几个不同的主机.所有应用程序和库将共享这些主机的一些常用设置 – 例如主机名,数据库服务器/用户/通行证等 我的目标是做一些事情: cap host1 stage deploycap host2 stage deploycap host1 prod d
这可能是一个新手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文件中“包含”此文件,我在其中定义stage,prod等,并根据需要覆盖任何“常见”配置参数.任何建议,将不胜感激.我尝试了一些不同的东西,但是我从所有这些中获得了错误.

编辑:我试过了

require 'my_module'

但我得到错误抱怨未定义的任务对象.

解决方法

我只是尝试了一点,我发现你必须:

load 'config/my_module'

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读