2016-02-13 23 views
0

我正在使用Spinnaker將3層系統部署到QA,然後部署到生產。每個系統中的配置文件指向其他系統。如果我在AMI的QA配置中烘烤,那麼在促銷到Prod時如何更改它?它是1)有兩組不同的AMI--一個用於QA,一個用於Prod,或者2)讓AMI沒有配置,然後在部署後配置它(以某種方式)以更改配置文件? 建議什麼?如何使用Spinnaker配置兩套主機(3個用於QA,3個用於產品)以部署分佈式系統?

回答

0

您可以在部署時(在羣集配置的高級設置下)爲羣集定義自定義AWS user data。然後,您可以在應用程序中檢索這個用戶數據。這將允許您更改這些類型的配置。

在Netflix中,我們有一系列init腳本被烘焙到基本映像中,並提供了一種通過星雲/ gradle擴展自定義啓動(init.d)腳本的機制。這通常會設置NETFLIX_ENVIRONMENT之類的值,這些值都是衆所周知的並且是針對其編程的。

我們還通過https://github.com/Netflix/archaius使用了一個功能翻轉機制。這允許我們添加集羣外部的屬性,但可以針對它們。

當涉及到安全證書時,本演示文稿中概述了這種方法,但本質上這些映像涉及到發佈這些類型信用的外部服務。 https://speakerdeck.com/bdpayne/key-management-in-aws-how-netflix-secures-sensitive-data-without-its-own-data-center

0

我在我們公司自己也遇到類似的問題。 我的解決方案是使用Packer腳本爲特定目的創建AMI。這使我可以 - 1.儘可能配置服務器,然後將這些配置存儲在AMI中。 2.如有需要,輕鬆更改這些配置。

然後,使用Ansible腳本啓動AMI,並在特定實例上完成所有其餘配置。

在我的情況下,我選擇爲舞臺和製作創建不同的圖像,但主要是因爲它們差別很大。如果他們更相似,我可能會選擇使用兩個AMI。

Ansible爲您提供的優勢是考慮您的配置,包括一次寫入生產服務器和登臺服務器。

相關問題