【问题标题】:Capistrano deploy on more than one machineCapistrano 部署在多台机器上
【发布时间】:2014-12-18 16:08:24
【问题描述】:

我想部署我的 rails 应用程序。我有一台带有 nginx 的机器、两台 Web 服务器和一台用作数据库服务器的机器。不幸的是,当我到达 deploy:migrate 时,它​​不起作用,因为 capistrano 尝试在我的数据库服务器机器上找到 rails 应用程序“/home/user/apps/MyApp/releases/20141218160125”的目录。我不想在那里有一个 Rails 应用程序。我只想将这台机器用作数据库服务器。我应该也将我的 rails 应用程序上传到那里,但不要在我的 nginx 配置中使用它吗?是否可以更清楚地做到这一点 - 就像数据库服务器和应用程序代码在用作应用程序服务器的机器上一样?谢谢!

【问题讨论】:

  • 您可以从 capistrano 部署脚本中排除数据库机器,并通过适当配置 database.yml 将数据库作为远程机器连接到数据库。针对特定数据库类型(mysql / postgres / 等)的在线好资源示例:railsforum.com/topic/… & ruby-forum.com/topic/134734

标签: ruby-on-rails ruby-on-rails-4 deployment capistrano capistrano3


【解决方案1】:

从 capistrano 中完全排除您的数据库服务器。无需为其部署任何东西。

您的 config/database.yml 已配置为连接到数据库,因为您的 Web 服务器必须在正常操作期间与数据库通信。

您只需将db capistrano 角色分配给其中一台Web 服务器即可。这是我的配置的样子。数据库完全在另一台服务器上。

server 'carnoustie.supremegolf.com', user: 'carl',    roles: %w{db web}
server 'standrews.supremegolf.com',  user: 'carl',    roles: %w{web}

【讨论】:

    猜你喜欢
    • 2014-05-26
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多