
我尋找使用 capistrano 進行部署的良好實踐。
我想先簡短描述一下我過去是如何進行部署的。
capistrano 安裝在開發人員本機電腦上。我使用 capistrano 選項部署思維網關:gateway
。首先,我認為使用:gateway
選項我只需要與網關主機建立 ssh 連接,但事實證明我需要 ssh 連接(公鑰)到我想要部署到的所有主機。
我想找到一種方便且安全的方式來部署應用程式。
例如,如果新開發人員開始工作,將他的公鑰僅在網關伺服器上,而不是在所有應用程式伺服器上。另一方面,我不希望他與伺服器有任何連接SSH到網關,僅僅因為他是開發人員,他只需要部署。
如果您了解使用 capistrano 進行部署的良好實踐,請告訴我們。
答案1
Capistrano 的設計初衷是假設 ssh 是所有管理的基礎。用作網關的電腦必須接受和發出 ssh 連線。沒有什麼辦法可以解決這個問題。您的開發人員將獲得對網關的 ssh 存取權。
您有一些要求:
- 輕鬆將新開發人員新增至部署目標的授權金鑰清單中
- 不想給開發者在網關盒上提供完整的終端
您需要決定如何處理部署目標上的鍵控。您在這裡有兩個主要選擇:
第二個選項是最安全的,但如果您有設定管理系統,效果最好。您確實應該使用一個,它甚至可以為網關伺服器提供authorized_keys 檔案。
您可以透過一些選項來限制開發人員透過 ssh 進入您的系統後可以執行的操作。
根據 Capistrano 與網關的實際工作方式,其中一些可能會阻止其工作,因此需要進行測試。它可能需要一個完整的外殼才能運作。