为了部署到 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/