2015-12-11 67 views
0

我們有不同的服務器環境,如stagingproduction。我希望Capistrano檢查我是否推送到正確的服務器,以便我們不會意外地將它推送到錯誤的服務器。如何在已確認的服務器上部署Capistrano部署IP

基本上,如果我想推到生產,例如,它會首先確認它是cap production deploy類型的正確IP地址,否則該過程將停止並返回錯誤消息。

這可能嗎?如何最好地做到這一點?

回答

0

讓你的分支機構設置,防止意外打字cap production deploy不會傷害

但要加倍小心,你可以添加得到hostnaneifconfig輸出任務,運行before 'deploy:started'和失敗/如果當前階段是拋出一個錯誤不是它應該是什麼

+0

你有任何示例代碼?具體來說,你將如何得到主機名或IP返回? – JCC

+0

使用capistrano的'capture'方法,它在遠程運行命令並返回輸出 – Vasfed

0

我最終做了一些簡單的事情,並沒有像我認爲的那樣完成同樣的事情。我只是確保在部署代碼中使用服務器的實際IP地址,而不是使用url。

所以,與其這樣:

server 'demo.example.com', :web, :app, :worker, :db, :cache, primary: true

使用此:

server '100.100.100.100', :web, :app, :worker, :db, :cache, primary: true

這使得它無法部署到錯誤的服務器爲您的DNS將不會被解釋路線。