我已经search了一下,阅读了“傀儡或厨师即是问题”的文章。
我对使用案例,真实世界的实现感兴趣,人们在真实的问题基础上select了一个或另一个。
我特别感兴趣的是与皮匠问题的整合 (我知道木偶在这个方向上是一个标准方法)。 作为任何人有任何经验的鞋匠 – 厨师整合 ?
提前致谢
说实话,我认为这归结为简单的观点:厨师似乎更多的是一个必要的,程序化的解决scheme,使用ruby作为语言瞬间使我希望有人把它移植到python,作为世界的方式与所有的ruby的想法。
这不是你想要的这种事情。 你想说的是系统将会出现的空白,并声明:
“80端口从北方召唤名为nginx的守护进程,他的任务是服务。
“用户应该存在,他的名字应该是chiggsy,他应该是轮组中的威力之一”
“举起一堵火,薄在80,443,8080的地方”
依此类推,虽然也许在语言less花哨。
木偶支持这个范例更好的国际海事组织。 我曾经使用过任何一个,我没有任何偏好,但是当它归结它时,声明更适合我。
木偶。
我在这里写了一个大厨对木偶的详细比较: 木偶vs厨师:10个木偶获胜的原因 。 虽然它不包含用例,但我希望它为那些想知道为基础设施自动化select哪种工具的人提供了一些有用的起点。
对于冗长的抱歉。 使用这个工具可以很容易地完成你的工作。 这是自动化的关键,对吧?
历史:我曾经在过去的演出中使用过木偶,上个月我花了大约一个星期的时间尝试去熟悉厨师,看看我是否会在新的演出中进行转换。
我没有飞跃。
行话:这两个系统的一个不幸的问题是行话超负荷。 (食谱,模板,节点,angular色,属性,提供者)它继续下去。 我发现厨师更远了一步。 (刀,Shef等)
代码成熟度:只要说我发现厨师太粗糙了。 这感觉就像3 – 4年前.21 / .22时间段的木偶感觉。 有很多的stream量正在进行。
不是说傀儡也没有发生过。 (我重新发现了近几年才出现的木偶中的很多很棒的function – 正则expression式匹配!
Ruby:我不喜欢Chef中的所有ruby超载。 (你甚至可以开始之前需要gem和耙子)你可以使用ruby来解决木偶故事中的复杂问题,但是如果你不想要,也可以不用。
复杂性:我不喜欢GUI专注于厨师。 我意识到这很漂亮,傀儡在作品中有一个网页界面作为附加,但我觉得应该更加分离。
厨师有一个更复杂的架构。 它可能会更好,但是有很多潜在的失败点。
http://wiki.opscode.com/display/chef/Architecture
除了API服务器和Web界面之外,厨师还需要couchdb,rabbitmq和solr。
我只想要一个简单的客户端/服务器接口,它不需要一个MVC框架和一个复杂的数据存储。
木偶在那个部门简单得多。 (并不是说没有太多的东西让它变得更加混乱)
完成工作:最后,我用我所知道的去做。 在花了一周的时间攻击之后,我几乎没有能力与主厨一起完成基础知识,于是我能够回到傀儡手中,并在几个小时内摧毁了我的基本需求。 (包pipe理,用户pipe理,configuration文件模板)
关于模块的说明:Puppet最近已经转向使用由第三方提供的“模块”。 我没有最终使用这些,我发现他们的质量范围很广。 在挖掘这些东西之前,一定要在封面下面看看,看看它们是怎样工作的。
这里有一个意见:我们已经尝试了所有在我们公司和我们prefere傀儡。 只是因为它很容易使用。
我自己曾经见过使用不同的configuration来pipe理1000个主机的情况,用puppet要容易得多。 事实上,像谷歌这样的公司使用木偶进行部署。
木偶的主要devise架构是这样的,如果你以正确的方式configuration它,它会比别人更好。 例如,添加自定义事实为您的自定义configuration等下面的链接可能会提供一些信息http://slashroot.in/puppet-tutorial-installing-puppet-master-and-puppet-agent
这可能是自上次尝试以来发生了变化,但是当我尝试使用RHEL的厨师时,没有明确的方法来安装它。 有人创build了一个有所有需要的软件包,但最终安装了200多个软件包。 木偶另一方面有一个单一的转速(和一些依赖)。