如何使用Rubber gem运行其他脚本?

时间:2012-03-02 14:03:00

标签: ruby-on-rails deployment ubuntu capistrano

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

1 个答案:

答案 0 :(得分:4)

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

制作自定义角色非常简单:

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

    最简单的方法是先复制一个现有角色并调整它以做你想做的事。

    陪审团仍然不清楚自定义角色是否是正确的方法。它对newrelic有一定意义,因为它安装了一个需要监控的守护进程,但对于大多数自定义配置来说它感觉非常重要。