ruby-on-rails - 如何自定义 Capistranos SSH 命令?

标签 ruby-on-rails deployment capistrano freebsd jail

为了部署到 FreeBSD jails,我需要我的命令看起来像这样:

ssh user@example.org "jexec 'web_jail' $THE_COMMAND_HERE"
ssh user@example.org "jexec 'db_jail' $ANOTHER_COMMAND_HERE"
...

请注意,尽管技术上可行,但我想避免直接在 jail 中激活 SSH!

那么我怎样才能让 Capistrano 像这样运行呢?

(请注意,我主要是在询问修改默认上限任务。)

最佳答案

有电锯吗?

需要澄清的一个部分是谁确定它是 web_jail 还是 db_jail?是那个加了_jail的角色吗?

我要入侵的地方是 Capistrano::Command.replace_placeholders。你可以使用 alias_method_chain 来 Hook 。原来在 lib/capistrano/command.rb 中。

您也许可以使用“shell”变量做一些花哨的步法,但这似乎很难做到。

由于您有两个人在观看,这可能是提交给 Capistrano 人员的一个很好的补充。

关于ruby-on-rails - 如何自定义 Capistranos SSH 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739749/

相关文章:

ruby - 卡皮斯特拉诺 3 : use server custom variable in task

ruby-on-rails - 带有 Capistrano 重启的 unicorn 不起作用

ruby-on-rails-3 - Rails Nginx 乘客无法结帐 session ,因为发生了生成错误

java - "add-ons"对于 native 应用程序如何工作?

mysql - Rails - 带有 include、where 和 AND 的 Controller 查询

ruby-on-rails - Rails sqlite3 上的段错误

ruby-on-rails - 在 REST API 中加载大数据 - ruby​​ on rails

node.js - 在生产环境中部署 ReactJS 应用程序(使用 NodeJS 后端)

java - 部署maven项目时出现依赖异常

ruby-on-rails - 如何使用 Rspec 测试带有嵌套路由的 Controller ?