2014-10-17 99 views
0

每天我必須啓動新的 EC2實例(或任何其他具有公共IP的服務器)。我配備廚師,創建虛擬主機,上傳數據庫等。如何自動克隆私人GitHub與廚師

我需要從GitHub克隆一些私人回購站。什麼是最好的方法來做到這一點?

  1. 我可以手動生成一個ssh密鑰,並將其添加到我需要的每個GitHub倉庫中,然後運行腳本 - 但這需要很多工作。
  2. 我可以去git clone git://user:[email protected]/*****/*****.git,但顯然我不想用這種方式存儲我的密碼
  3. 還有什麼?

有沒有什麼辦法:

  • 店私鑰(?或密碼)的配方/食譜或
  • 產生新的密鑰,並通過與GitHub的API是同步的(但是這會導致我的GitHub帳戶中有數百個密鑰)

回答

1

無恥插頭:deploy_key食譜。

我在這個精確的使用案例中創建了這本食譜。它管理GitHub,BitBucket和GitLab中部署密鑰的整個生命週期。它在本地創建一個密鑰(以便永遠不必通過網絡發送),將其作爲deploy_key(只讀,將這些密鑰永遠不會將更改推送到repo)添加到回購中,並且可以用於刪除密鑰文件並從回購中刪除密鑰。

一切行動都是冪等,所以如果你害怕你的回購將有太多的deploy_keys被淹沒,你可以在使用後(通過廚師,:remove動作)從回購刪除鍵,或有周期性的清理任務刪除所有的deploy_keys。下次Chef運行時,它會注意到密鑰不存在並重新添加。

您需要保護的唯一祕密是回購憑證,可以像您執行其他祕密一樣保護回購憑證。