如何自定义Capistranos SSH命令?

时间:2012-05-24 14:41:20

标签: 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"
...

请注意,虽然技术上可行,但我希望避免直接在jails中激活SSH!

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

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

1 个答案:

答案 0 :(得分:0)

有电锯?

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

我要攻击的地方是Capistrano :: Command.replace_placeholders。您可以使用alias_method_chain挂钩。原文位于lib / capistrano / command.rb。

你可以用“shell”变量做一些花哨的步法,但这看起来很难。

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