我正在使用 Rubber gem 在 Amazon ec2 上进行部署。
它很好地部署和配置了 ubuntu 实例,但我需要在服务器上安装额外的模块(不是 ruby 模块)。如何在部署期间使用 rubber 运行其他脚本?
代码示例将不胜感激,因为这是我第一次做这种事情。
最佳答案
我有一个类似的问题,想在我所有的 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/