2014-03-29 72 views
0

我有一個PHP Web應用程序在負載平衡器後面的兩臺服務器上運行相同的代碼(可能更多)。代碼保存在專用的BitBucket存儲庫中。我很難找出適合這種情況的最佳部署策略。分佈式Web應用程序的Git部署策略

目前,我已經在使用Ansible來配置服務器,所以我所做的就是使用Git module來檢出代碼庫中的代碼到服務器中。由於代碼存儲在私人存儲庫中,因此我添加了一個play來將授權的ssh私鑰複製到服務器上,隨後將在git checkout期間將其指定爲密鑰文件。密鑰使用Ansible Vault加密。

密鑰和配置手冊也被檢入到git中。

到目前爲止它的工作狀況很好,但儘管我不確定它有什麼問題,但我擔心安全問題。我不禁感到,我通過檢查ssh密鑰進入VCS以及在所有服務器上使用相同的密鑰來做錯了事情。

我該怎麼做才能保證它的安全?

回答

0

這個問題非常廣泛,但我會說使用Ansible Vault是正確的方法。你正在git庫中檢查你的ssh密鑰,但它們是加密的,你只能用你的密碼解密它們。

如果你想提高更多的安全性,你可以嘗試創建40968192 ssh密鑰就像我一樣。一般情況下,ssh密鑰驗證非常安全,因爲每次使用私鑰/公鑰對時都會生成唯一的指紋。

0

這幾乎是一個很大的話題,對我來說可能是安全的可能不適合你。

但一般來說它沒關係,但我會保留以下幾點。

  • 使用部署應該對他能做些什麼機會有限(如果可能)
  • 可以使用的authorized_keys限制鑰匙的來源,如果它被破壞http://man.he.net/man5/authorized_keys
  • 正如波多黎各說,使用高位密鑰