2014-04-12 47 views
1

當您設置在OpsWorks堆棧,它在當前內置食譜版鎖定還是會使用最先進的最新版本,每次觸發生命週期事件的時間?OpsWorks的內置食譜是如何版本化的?

對於定製食譜,據我所知,OpsWorks緩存提供的配方時提供他們,而不是獲取每一次的最新版本,但我不知道如果同樣是內置的食譜真。

我很擔心這幾個原因。如果菜譜更新爲安裝不同版本的Apache或PHP或稍微改變其默認配置?如果我再設置中使用了一層新的實例舊配方,並用多臺服務器配置稍有不同的結束?

而且似乎沒有要自定義哪個版本PHP5被安裝的方式,所以我只是在Ubuntu的軟件包管理器決定使用最新的穩定版本的擺佈?

我也想繼續使用最新和最偉大的軟件版本,但我想他們對我自己的時間部署我已經能夠測試我的應用程序工作在新版本之後。

回答

1

當您在OpsWorks中設置堆棧時,它會鎖定當前的內置食譜版本,還是每次觸發生命週期事件時都會使用最新版本?

當您準備一臺新機器時,內置於cookbook +自定義烹飪書被同時請求到服務器上。它得到更新只有定製的食譜更新被要求。這就是爲什麼建議不會將整個AWS烹飪書複製到您的自定義食譜中的原因。只有你正在修改的東西,所以你可以從標準的社區食譜更新中受益。

我很關心這個,原因有幾個。如果菜譜更新爲安裝不同版本的Apache或PHP或稍微改變其默認配置?如果我再設置中使用了一層新的實例舊配方,並用多臺服務器配置稍有不同的結束?

這不僅僅是一個老生常談,也是一個好處。這取決於你如何看待這一點。可能會有什麼性能改進,也可能會引入錯誤。這需要您的操作人員保持同步。

只需將重複(或定製)版本放置在食譜中的同一位置,即可覆蓋內置食譜的部分內容。 Converge option

或更復雜,但肯定的方式:

  1. 實現自定義的食譜菜譜。
  2. 將opsworks食譜作爲子模塊導入到cookbooks文件夾內的文件夾中。
  3. 符號鏈接,你需要controled到主文件夾版本的食譜現在
  4. 評估,並根據需要進行更新特定的人

即:

cd cookbook 
git submodule add https://github.com/aws/opsworks-cookbooks external-cookbooks/opsworks-cookbooks 
ln -s external-cookbooks/opsworks-cookbooks/rails rails 

這樣,您就可以更新並保持版本控制的基礎設施代碼。製作並評估更改,並在導入更改後才能進行更改

我仍然建議使用會聚模式,只需對硬編碼進行少量更改。這將意味着更少的重複,並且您的將受益於可能在社區版本食譜中的更新。

如果您使用的是使用UBUNTU方式安裝PHP的烹飪書 - 那麼您會憐惜回購中的內容。如果您使用另一個自定義編譯版本,那麼您可以編譯特定版本。您可能必須自己編寫或找到構建它的程序,並讓您通過菜譜上的屬性指定版本。

+0

感謝您的詳細回覆。我會考慮你的建議。 關於Ubuntu的包管理器,我可能會因爲這個原因檢查出Gentoo。它似乎允許我指定軟件版本。 – mikegreiling

相關問題