与Ansible相比,Puppet有哪些局限性?


17

我想了解Puppet和Ansible之间的区别,特别是与Ansible相比,Puppet有哪些限制。

有什么您无法在Puppet中做到的,但是您可以在Ansible中做到吗?换句话说,为什么有些人从木偶转移到Ansible?


我将答案与此分开了,原因之一可能是redhat在其上投资的所有资金。
ᴳᵁᴵᴰᴼ

Answers:


20

当然,Puppet,Ansible,Chef都有各自的优点和缺点,并在此处添加您喜欢的工具。因此,我将尽量避免发表意见,并事实上分享Ansible的优点。

将Ansible置于其他之上的主要功能是不必依赖于在目标节点上运行的某些自定义/附加代理,而仅基于ssh连接即可。是的,它仍然需要一个ssh服务器,节点上的Python和一堆Python库,并且如果您选择的发行版(或者,很幸运,有一些Windows节点)不附带它们,那将有点痛苦的引导。但这不太可能,甚至可能会让您重新考虑发行版。

这将简化监视,不占用额外的资源,不强制系统始终以root用户身份运行守护程序,并且通常在UNIX哲学中感觉更好。Chef具有chef-solo,Puppet可以在没有管理员的情况下运行,但是它们都通过克隆和分别通过钩子来“反向执行”。使用Ansible时,源存储库中的合并可以以我们都熟悉的方式触发部署,无论是在Jenkins中,在git master中还是在诸如Rundeck之类的其他工具中。


值得一提的是,如果您用ansible搞砸了ssh配置,那么您就被锁定在机器之外,这就是推模型的缺点。人偶或厨师可以从事crontab工作,因此他们对系统的影响不会超过可使用的Python代码
Tensibai

1
关于代理的说明:我的安全团队批准了我在HSE(高安全性环境)中加入Ansible的想法,即使在无主配置的情况下,也拒绝了Chef和Puppet。在某些情况下,无代理是制胜法宝。
Woodland Hunter

2
如果您破坏了SSH设置,则无论如何都将遇到Ansible以外的问题。良好的DevOps实践是在投入生产之前在各种环境中测试诸如SSH更改之类的事情,并且还可以在编写SSH时验证SSH配置是否正确-Ansible template模块使此操作非常容易。
RichVel

我听说有人争论说Ansible的无代理架构使其更适合管理路由器,例如您无法安装Puppet代理。但是,此类设备是否随附Python解释器?也许不是,Python对Ansible管理的每个组件是否真的有严格的要求?
Drux

10

不,从Puppet迁移到Ansible的人们(反之亦然)与任何一种工具都可以或不能实现的事情无关。木偶/厨师/ Ansible-大多是口味问题。

例如,Ansible基于Python,并且Python开发人员通常对它有更多的了解(无需学习DSL)或Ruby(对于Chef)。Python开发人员也更容易扩展Ansible。

但从本质上讲,它们在实现目标方面都非常相似。有些在某些方面具有相对优势,而在其他方面则具有劣势,但通常是根据团队的风格/文化/偏好来进行选择。


8

在Puppet 4.0之前,没有一种简单的方法来协调分布在多个服务器或服务上的应用程序,因为很难在Puppet中对操作进行专门排序,这是一种设计选择。Ansible在协调和排序步骤方面更好,尤其是在多台服务器之间。在步骤顺序错误可能导致错误的情况下,通过重复执行这些步骤直到达到最终的一致性,该错误尤为重要。

这不再是一个问题,因此区别主要是基于偏好。


2
木偶的设计选择是Chef开始的原因之一,几年前,我确实将主要工作转移到了Chef的基础架构和CD系统。
Tensibai

2
Puppet编排仅是Puppet Enterprise(商业)功能,而Ansible中的编排则在开源版本中。通常,Ansible比Puppet更容易安装和学习-对两者进行了一些评估之后,我现在使用Ansible。也存在其他差异,因此这不仅仅是个人喜好问题。
RichVel

1
我在以前和现在的工作中都使用Ansible,但是它有其自身的问题。我越用Ansible,就越有兴趣学习其他替代方法。我希望这种替代方案不要使用Python进行模块开发,而要拥有活跃的重要开源社区。对Ansible的拔出请求几乎要花费一年的时间才能进行审查。以这种速度,它可能是专有的。
吉里·克劳达

1
很多人抱怨人偶代理,但是当您在云中并且需要自动伸缩组并且您不想重建虚拟机的映像时,将虚拟机连接到人偶主服务器是一件好事,但我看不到任何问题有一个小代理商。
c4f4t0r 18/12/7
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.