[英]Vagrant provisioning shell vs puppet vs chef
我有以下設置:
我想使用Vagrant並在每個存儲庫中包含一個Vagrant文件,因此我的團隊成員可以克隆存儲庫,運行vagrant up
並准備好去。
我現在的問題是針對供應問題。 我需要安裝幾個工具和包,如apache,git,mysql和幾個php包,然后下載一些文件(如最近的開發數據庫轉儲),在/ var / www中設置所有內容並運行composer install命令。
所以這樣做的一個選擇是使用經理使用廚師或木偶等食譜。 另一種方法是編寫一個bash文件並使用shell配置。
我對廚師/木偶的經驗不多,所以很自然地,使用shell選項似乎更容易,但我想知道從長遠來看這是不是一個好的/可行的選擇。
為什么對我來說,與木偶/廚師合作似乎是一個糟糕的方法:
我知道我將不得不使用幾種不同的配方,並且幾乎總是對我的不同存儲庫使用相同的配方,所以我必須將所有這些配方包含在所有存儲庫中。 考慮有20個repos並需要10個食譜,這意味着我需要添加200個食譜作為git-submodule或類似(同樣每個團隊成員需要克隆存儲庫,然后克隆10個食譜存儲庫,然后每個都運行vagrant項目)。 相比之下,我只需要使用我的shell腳本創建一個小型repo並將其克隆20次。
我可能遺漏了一些東西,所以請建議我是否應該選擇廚師/木偶以及為什么它有意義,即使我的存儲庫都有一個非常相似的服務器設置。
下面的文章涉及另一個CM工具( ansible ),但我認為作者在解釋轉換遠離shell腳本的好處方面表現非常出色。
http://devopsu.com/blog/ansible-vs-shell-scripts/
引用1:
令我感到驚訝的是這些更着名的開發者的回應。 他們基本上說,“這真的很酷,但我可能不會閱讀它,因為我的手動安裝/ shell腳本工作流現在很好。”
我有點震驚,但是一旦我想到它幾分鍾,我意識到他們的選擇是完全理智和理性的,因為他們對CM工具的了解。
引用2:
對於他們來說,使用CM工具意味着需要花費數周時間來學習復雜的概念,努力解決復雜的安裝過程,並隨着時間的推移維護復雜的系統。 他們有點意識到這些好處,但使用CM工具的成本似乎太高而不值得付出努力。
最后總結了shell腳本的好處,我認為它們適用於所有CM工具,木偶,廚師,鹽,ansible ......
希望這可以幫助。
2016年更新
對於那些通過谷歌發現這一點的人來說,似乎很多開發人員都在向Ansible邁進。 從帖子:
“Ansible是不喜歡部署工具的人的部署工具。它接近腳本,不會污染你的服務器與代理或集中式服務器,只是立即感覺到。”
我們最近在我們的微服務架構中實現了它,它非常棒。
木偶/廚師總是在我的心臟/堆棧中占有一席之地,但Ansible更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.