Security
使用 capistrano 進行部署的正確方法
我尋找使用 capistrano 進行部署的良好實踐。
我想先簡要描述一下我過去是如何進行部署的。
capistrano 本地安裝在開發人員的電腦上。我使用 capistrano 選項部署思想網關
:gateway
。首先,我認為使用:gateway
選項我只需要與網關主機建立 ssh 連接,但事實證明我需要與我想要部署到的所有主機的ssh 連接(公鑰)。我想找到一種方便且安全的方式來部署應用程序。
例如,當新開發人員開始工作時,將他的public_key只放在網關伺服器上而不是放在所有應用程序伺服器上會更方便。另一方面,我不希望他與伺服器有任何連接,特別是ssh到網關,僅僅因為他是開發人員,他只需要進行部署。
如果您知道使用 capistrano 進行部署的良好做法,請告訴我們。
Capistrano 是從零開始設計的,假設 ssh 是所有管理的基礎。用作網關的機器必須接受和發出 ssh 連接。周圍沒有什麼。您的開發人員將獲得對網關的 ssh 訪問權限。
你有一些要求:
- 輕鬆將新開發人員添加到部署目標的授權密鑰列表中
- 不想在網關盒子上給開發者一個完整的終端
您需要決定如何處理部署目標的鍵控。您在這裡有兩個主要選擇:
第二個選項是最安全的,但如果您有一個配置管理系統,則效果最好。你真的應該使用一個,它甚至可以為網關伺服器提供authorized_keys 文件。
您有一些選項可以限制開發人員在 ssh 進入您的系統後可以執行的操作。
根據 Capistrano 實際如何與網關一起工作,其中一些可能會阻止它工作,因此需要進行測試。它可能需要一個完整的外殼才能執行。