2012-05-24 78 views
3

爲了部署到FreeBSD的監獄,我需要我的命令看起來像這樣:如何自定義Capistranos SSH命令?

ssh [email protected] "jexec 'web_jail' $THE_COMMAND_HERE" 
ssh [email protected] "jexec 'db_jail' $ANOTHER_COMMAND_HERE" 
... 

需要注意的是,雖然在技術上有可能,我想避免直接在監獄啓動SSH!

那麼我該如何讓Capistrano像這樣操作?

(請注意,我主要是在參考問到修改默認帽任務。)

回答

0

得到電鋸?

需要澄清的部分是誰確定它是否是web_jail或db_jail?這是_jail附加到它的角色?

我想入侵的地方是Capistrano :: Command.replace_placeholders。您可以使用alias_method_chain來掛接。原始文件位於lib/capistrano/command.rb中。

你可能會用「shell」變量做一些奇特的步法,但這似乎很難做到。

既然你有兩個人在看,這可能是一個很好的補充提交給Capistrano人。

+0

FreeBSD中的Jails被命名。 'web_jail'和'db_jail'是那些名字。他們是由管理員在設立監獄時選擇的。 – user569825