选择流浪汉配置者

时间:2011-10-12 22:26:39

标签: bash configuration-management chef puppet vagrant

问题

有人可以解释为什么选择木偶或厨师流浪汉供应者而不是壳供应商会更好吗?

背景

我正在开始使用Vagrant。我遇到问题的一个原因是决定使用哪个配置器。到目前为止,我已经使用shell配置程序取得了一些成功,但是它比我预期的更可靠地运行它。

目前,我不熟悉红宝石,木偶或厨师,但如果必须,我很乐意学习其中的任何一个或全部。我与木偶和厨师一起玩的早期经验是,如果其他人的配方完全符合您的要求,那么它的效果非常好,但做一些非标准的工作意味着在红宝石中编写解决方案。

我知道比较puppet and chef的文章,我不太担心它们中的哪一个使用,而不是知道何时以及为什么我应该使用它们。

3 个答案:

答案 0 :(得分:27)

完全披露:我是Puppet Labs员工。但在加入之前,我选择Puppet作为产品超过2年。

我建议您使用Puppet或Chef over shell(如果您的配置要进行)a)具有任何程度的复杂性并且b)随着时间的推移而改变 - 或者您希望您的安装环境本身以可能的方式进行更改改变部署的执行方式。你的脚本可能非常好,但最终,除非你遵循极好的编程实践,测试和QA'ing等等,否则它们会在某些时候失败。

DevOps围绕着这个概念讨论了整个文盲,但它归结为“技术债务”的原则 - 我们现在倾向于以简单的方式做事,因此认为它们更简单,代价是增加后来的复杂性和困难。

Puppet的优势之一是其确定性 - 您编写的清单必须能够通过Puppet以编程方式转换为您正在构建的服务器的模型。这被人们认为更“困难”,但我认为如果你沿着技术生命周期的曲线平均化,那么难度就会降低。换句话说,Puppet迫使你现在进行思考,然后轻松地进行部署,而不是在以后思考并重新设计。以后用现金支付现金,而不是信贷。

如果你纯粹是在拉扯其他人的表现,你会在某些时候遇到麻烦 - 虽然我们希望不会这样,但今天与Puppet合作肯定是这样,因为他们正在写作它们用于解决一般情况,而不是您的特定系统。只有当你更好地理解Puppet时,许多通用清单才会有用。

因此,我不是从那里开始,而是通过优秀的Learning Puppet指南来开始掌握基础知识。 Puppet的学习曲线很陡峭,但在一段时间之后就会趋于平稳。

使用其他配置程序或工具还有其他原因,但我肯定会说你对Puppet或Chef更好,而不是试图确保你的shell脚本完全按照你认为他们应该做的那样做,因为只要你需要产生新的环境。

答案 1 :(得分:10)

啊,选择的自由带来了选择适合自己的东西的复杂性。

Chef Solo - 如果您刚刚开始使用厨师或厨师服务器对您的情况来说太沉重,那么Chef solo是最理想的选择。 Chef solo允许您将所有烹饪书嵌入到项目中,这对于想要在同一个存储库中跟踪其烹饪书的项目非常有用。 Chef solo独立运行 - 它不需要厨师服务器或任何其他服务器进行通信;它只是在VM上自行运行。

Chef Server - Chef服务器对管理许多项目的公司或个人非常有用,因为它允许您跨多个项目共享cookbook。烹饪书本身存储在服务器上,客户端在运行时下载烹饪书。

Puppet - Puppet配置程序运行独立的Puppet清单,这些清单存储在服务器上并在创建时下载到客户端VM。供应商不需要Puppet服务器并在VM本身上运行。

Puppet Server - Puppet Server配置程序连接到Puppet服务器,并使用该服务器上的节点配置配置客户端VM。

其他工具,shell脚本等 - 您是否使用了Vagrant中内置的东西? 供应商只是Vagrant :: Provisioners :: Base的子类,这意味着如果需要,您可以轻松构建自己的子类。

您还可以查看文档docs.vagrantup.com/v2

答案 2 :(得分:4)

我会选择Shell配置器,然后让shell脚本从github或bitbucket克隆你的puppet / chef存储库。该脚本可以设置ssh密钥以允许自动git clone。大多数云提供商也支持这一优势,因此您可以使用相同的脚本。这个博客很好地解释了git,puppet和vagrant,one man and the cloud blog

相关问题