2011-07-14 14 views

回答

-2

看看capistrano multistage extension。適用於多臺服務器。然後,您可以在不同的文件中定義不同的階段(或服務器),然後通過指定階段將其部署到每個階段(並且您可能有一個要部署的默認階段)。

+0

這個答案根本沒有幫助OP。 –

+0

一致認爲我誤解了他的問題並且沒有回答SSH部分,但是如果他希望使用多級擴展將其部署到10臺服務器(RAILS_ENV或其他系統範圍設置)的任何區別將會很有用。在你的評論開始「@亞瑟的建議......程序是相同的」我認爲這是他想要的,但此外,程序可以根據舞臺/服務器而有所不同。 –

1

Capistrano對推送代碼不負任何責任(在推動SCM變化的意義上),您仍然使用Git或您的其他SCM選擇。

默認情況下,Capistrano將登錄到您的「角色」中指定的服務器上,並將代碼從源代碼管理器中單獨下載到每個服務器。

如果您有10臺服務器,並且它們都是網絡服務器,您可以將它們全部命名爲Capistrano中的web角色。

有優秀Github guides欲瞭解更多信息,但總之,是的;預計您將ssh密鑰設置爲:a)以您的deploy用戶身份登錄到服務器; b)讓您的服務器訪問源控制(通常稱爲部署密鑰)。多階段僅在部署到多個環境時纔有用,例如過程相同的「暫存」和「生產」,但服務器列表不同。

1

在你config/deploy.rbCapfile,剛剛設置的「網絡」作用的IP地址,你需要如下:

role :web, "1.2.3.4", "5.6.7.8" 

正如其他人所說,你需要設置SSH密鑰(除非你真的很喜歡輸入密碼!),然後當你輸入cap deploy它會(取決於你的設置)檢查git repo,壓縮它並scp tarball到服務器(:deploy_via :copy:deploy_via :export)或ssh到服務器並直接檢查git repo (默認行爲)。