我正在閱讀capistrano教程:https://github.com/capistrano/capistrano/wiki/2.x-From-The-Beginning你在哪裏設置服務器的IP地址來推送代碼?
你在哪裏設置服務器的IP地址以將代碼推送到?
它假定你有一個SSH密鑰設置?
如果你有10臺服務器,最好使用不同的工具來反映事情嗎?
我正在閱讀capistrano教程:https://github.com/capistrano/capistrano/wiki/2.x-From-The-Beginning你在哪裏設置服務器的IP地址來推送代碼?
你在哪裏設置服務器的IP地址以將代碼推送到?
它假定你有一個SSH密鑰設置?
如果你有10臺服務器,最好使用不同的工具來反映事情嗎?
看看capistrano multistage extension。適用於多臺服務器。然後,您可以在不同的文件中定義不同的階段(或服務器),然後通過指定階段將其部署到每個階段(並且您可能有一個要部署的默認階段)。
Capistrano對推送代碼不負任何責任(在推動SCM變化的意義上),您仍然使用Git或您的其他SCM選擇。
默認情況下,Capistrano將登錄到您的「角色」中指定的服務器上,並將代碼從源代碼管理器中單獨下載到每個服務器。
如果您有10臺服務器,並且它們都是網絡服務器,您可以將它們全部命名爲Capistrano中的web
角色。
有優秀Github guides欲瞭解更多信息,但總之,是的;預計您將ssh密鑰設置爲:a)以您的deploy
用戶身份登錄到服務器; b)讓您的服務器訪問源控制(通常稱爲部署密鑰)。多階段僅在部署到多個環境時纔有用,例如過程相同的「暫存」和「生產」,但服務器列表不同。
在你config/deploy.rb
或Capfile
,剛剛設置的「網絡」作用的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 (默認行爲)。
這個答案根本沒有幫助OP。 –
一致認爲我誤解了他的問題並且沒有回答SSH部分,但是如果他希望使用多級擴展將其部署到10臺服務器(RAILS_ENV或其他系統範圍設置)的任何區別將會很有用。在你的評論開始「@亞瑟的建議......程序是相同的」我認爲這是他想要的,但此外,程序可以根據舞臺/服務器而有所不同。 –