使用 capistrano 進行部署的正確方法

使用 capistrano 進行部署的正確方法

我尋找使用 capistrano 進行部署的良好實踐。

我想先簡短描述一下我過去是如何進行部署的。

capistrano 安裝在開發人員本機電腦上。我使用 capistrano 選項部署思維網關:gateway。首先,我認為使用:gateway選項我只需要與網關主機建立 ssh 連接,但事實證明我需要 ssh 連接(公鑰)到我想要部署到的所有主機。

我想找到一種方便且安全的方式來部署應用程式。

例如,如果新開發人員開始工作,將他的公鑰僅在網關伺服器上,而不是在所有應用程式伺服器上。另一方面,我不希望他與伺服器有任何連接SSH到網關,僅僅因為他是開發人員,他只需要部​​署。

如果您了解使用 capistrano 進行部署的良好實踐,請告訴我們。

答案1

Capistrano 的設計初衷是假設 ssh 是所有管理的基礎。用作網關的電腦必須接受和發出 ssh 連線。沒有什麼辦法可以解決這個問題。您的開發人員將獲得對網關的 ssh 存取權。

您有一些要求:

  • 輕鬆將新開發人員新增至部署目標的授權金鑰清單中
  • 不想給開發者在網關盒上提供完整的終端

您需要決定如何處理部署目標上的鍵控。您在這裡有兩個主要選擇:

  1. 使用通用密鑰,每個人都有一個,並將其烘焙到圖像/目標中。
  2. 使用特定的金鑰,每個人都有自己的金鑰,您可以透過類似的方式管理authorized_keys列表或者

第二個選項是最安全的,但如果您有設定管理系統,效果最好。您確實應該使用一個,它甚至可以為網關伺服器提供authorized_keys 檔案。

您可以透過一些選項來限制開發人員透過 ssh 進入您的系統後可以執行的操作。

根據 Capistrano 與網關的實際工作方式,其中一些可能會阻止其工作,因此需要進行測試。它可能需要一個完整的外殼才能運作。

相關內容