ruby-on-rails - 如何使用 Rubber gem 运行其他脚本?

标签 ruby-on-rails deployment ubuntu capistrano

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

最佳答案

我有一个类似的问题,想在我所有的 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 将角色添加到您的服务器

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

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

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

相关文章:

ruby-on-rails - 如何使用 JBuilder Gem 发送 http 状态

ruby-on-rails - 在 CircleCi 2.0 构建中使用 psql 命令

caching - 启用缓存后如何持续部署 Web 应用程序?

deployment - 部署网站的最佳方式?

java - 如何在Ubuntu中打开终端并使用Java代码向其传递参数?

shell - 如何在 shell 脚本中将 $abc 写为字符串值

ruby-on-rails - cucumber 在没有 spork 的情况下工作正常,但是 spork 给了我 "uninitialized constant Cucumber::Rails"

deployment - Docker应用程序部署

node.js 集群,将子级标准输出重定向到文件中断数据

javascript - 如何使用 LocalStorage 使复选框持久化?