我正在使用 Rubber gem 在 Amazon ec2 上进行部署。
它很好地部署和配置了 ubuntu 实例,但我需要在服务器上安装其他模块(不是 ruby​​ 模块)。在部署期间如何使用橡胶运行其他脚本?
代码示例将不胜感激,因为这是我第一次做这种事情。

最佳答案

我想在我的所有 EC2 实例上安装 NewRelic 服务器监视器时遇到了类似的问题。我最终创建了一个新角色('newrelic')并将其添加到我的所有服务器中。

创建自定义角色很简单:

  • 创建一个 config/rubber/deploy-[rolename].rb(通过复制现有的)
  • 更改任务命名空间
  • 根据模块
  • 的需要更改 :install:bootstrap:start/:stop/:restart 任务
  • 创建一个 config/rubber/rubber-[rolename].rb
  • 在部署文件中添加需要引用的任何变量
  • 如有必要,创建一个 config/rubber/role/[rolename] 目录并添加任何必需的文件(例如 [rolename]-upstart.conf )
  • 通过运行 cap rubber:add_role
  • 将角色添加到您的服务器

    最简单的方法是先复制现有角色并对其进行调整以执行您想要的操作。

    关于自定义角色是否是实现此目的的正确方法,尚无定论。这对 newrelic 有一定意义,因为它安装了一个需要被监控的守护进程,但对于大多数自定义配置来说感觉非常重量级。

    关于ruby-on-rails - 如何使用 Rubber gem 运行其他脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9534568/

    10-13 06:43