如何使用 AWS OpsWork 部署 2 个或更多 Rails Web 应用程序?

Posted

技术标签:

【中文标题】如何使用 AWS OpsWork 部署 2 个或更多 Rails Web 应用程序?【英文标题】:How can I deploy 2 or more Rails webapps using AWS OpsWork? 【发布时间】:2016-05-24 16:35:07 【问题描述】:

如何使用 AWS OpsWork 拥有 2 个或更多 Rails 应用程序? 当我使用 Opswork 部署 2 个应用程序时,它们会获得相同的 URL 并重定向到部署的第一个应用程序。 如何在一个 OpsWork 实例中管理两个独立的应用程序?

【问题讨论】:

【参考方案1】:

我之前也遇到过类似的问题 - 两个 Node 应用程序在同一个堆栈中。

一个答案是为两个 Rails 应用程序创建两个单独的 OpsWorks 堆栈。这当然假设它们不依赖于相同的资源(即共享数据库)。

第二个更难的答案——也是我为 Node 应用程序采用的答案——是创建一个自定义层并手动指定内置 Rails 层调用的所有配方。如果内置 Rails 层和您的自定义层都具有 ELB 并且 Rails 站点托管在不同的实例上(端口号可能会发生冲突,取决于您使用的应用服务器)并且您确保您的应用程序部署在 OpsWorks 目标仅正确的盒子(不想在同一台服务器上安装两个 Rails 应用程序!)......它应该可以解决。 (或靠近)。

我认为这并不像听起来那么容易:我记得出于某种原因深入研究了 Opsworks Chef 食谱代码。我忘了这是因为这个自定义层问题还是因为我写的另一个自定义层。

【讨论】:

以上是关于如何使用 AWS OpsWork 部署 2 个或更多 Rails Web 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

AWS opswork-agent 未启动

使用 Jenkins 和 Opswork 集成进行持续部署

aws opswork 是不是支持 CoreOS

AWS opswork 云形成无法导入

cron 资源在 aws opswork 中不起作用?

我可以使用/覆盖 AWS OpsWork 的内置 unicorn::rails 配方安装自定义构建的 nginx 吗?