當您在OpsWorks中設置堆棧時,它會鎖定當前的內置食譜版本,還是每次觸發生命週期事件時都會使用最新版本?
當您準備一臺新機器時,內置於cookbook +自定義烹飪書被同時請求到服務器上。它得到更新只有定製的食譜更新被要求。這就是爲什麼建議不會將整個AWS烹飪書複製到您的自定義食譜中的原因。只有你正在修改的東西,所以你可以從標準的社區食譜更新中受益。
我很關心這個,原因有幾個。如果菜譜更新爲安裝不同版本的Apache或PHP或稍微改變其默認配置?如果我再設置中使用了一層新的實例舊配方,並用多臺服務器配置稍有不同的結束?
這不僅僅是一個老生常談,也是一個好處。這取決於你如何看待這一點。可能會有什麼性能改進,也可能會引入錯誤。這需要您的操作人員保持同步。
只需將重複(或定製)版本放置在食譜中的同一位置,即可覆蓋內置食譜的部分內容。 Converge option
或更復雜,但肯定的方式:
- 實現自定義的食譜菜譜。
- 將opsworks食譜作爲子模塊導入到cookbooks文件夾內的文件夾中。
- 符號鏈接,你需要controled到主文件夾版本的食譜現在
- 評估,並根據需要進行更新特定的人
即:
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的烹飪書 - 那麼您會憐惜回購中的內容。如果您使用另一個自定義編譯版本,那麼您可以編譯特定版本。您可能必須自己編寫或找到構建它的程序,並讓您通過菜譜上的屬性指定版本。
感謝您的詳細回覆。我會考慮你的建議。 關於Ubuntu的包管理器,我可能會因爲這個原因檢查出Gentoo。它似乎允許我指定軟件版本。 – mikegreiling