`
joerong666
  • 浏览: 418101 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

配置管理工具puppet与chef对比分析

 
阅读更多

puppet与chef对比

首先说说相同点:

1、都是基于ruby语言
2、对要配置的对象提供了跨平台的抽象,用户大部分时间只跟这些抽象的资源打交道,而不用关心实现,如只需关心要添加什么软件或用户,不需要关心这些用户或软件是怎么添加上去的
3、都有配置中心服务器,在每台要配置的客户端上都需要安装客户端,客户端跟服务器端用证书认证
4、配置应用过程都有两个阶段,第一个阶段在配置中心进行,由配置中收服务器针对客户端生成资源列表,第二个阶段在客户端运行,将应用收到的资源列表。
5、都提供了扩展的方式,puppet用的是模块的方式,而chef用的是cookbook的方式。虽然感觉(我没有真正用过chef)chef的cookbook方式更灵活和易于分享,但是这两者实质是一样的

再说说不同点:
1、puppet提供的配置语言更通用和高级一些,用户不需要懂ruby语言。而对于chef,没有专门的配置语言,用户需要了解比较多的ruby语言。
2、puppet资源之间有显式的依赖关系,按照这些关系去实现,而跟这些资源在配置文件的位置或前后没有关系。而看了一下chef的一些例子,更像是ruby脚本,从前到后按顺序执行
3、puppet安装简单,需要的支持软件也少,服务器端也是这样。而chef在配置中心服务器端需要依赖软件比较多,需要couchdb、RabbitMQ和Solr,这样连带需要安装java和erlang,这样配置服务器过程要复杂很多
4、puppet服务端的配置都是一个一个的文本文件,这样易于发布、备份和扩展。而chef的服务器端的配置放在couchdb和solr索引等二进制文件中,通过远程命令工具knife来操作这些配置。这样,puppet更符合unix管理员的使用习惯。
5、puppet的用户很多,象Google、Redhat等大公司都在用它。而chef的用户就少多了,而且没有什么大的公司

最后,我感觉chef从puppet身上学到或借用了很多有用的概念,但是没有什么超越的地方。而puppet比以前的cfengine工具多出了很多的亮点,这也是我愿意从一个cfengine用户转到puppet用户的原因。但是,如果让我从puppet往chef上转,确实缺少动力。chef可能更适合专业用户,用在云计算这种需要更多定制的场合,只是不知道有没有合适的生态环境让它长那么大。呵呵。

 

Puppet网站收集:

http://www.puppetfans.com/

http://puppet.wikidot.com/

分享到:
评论

相关推荐

    Chef vs Puppet vs Ansible vs SaltStack

    本文将深入探讨四款广受欢迎的配置管理工具:Chef、Puppet、Ansible和SaltStack,对比其特点、优势以及适用场景。 **Chef** 是一款基于Ruby的配置管理工具,它采用面向对象的编程方式,强调代码即配置的理念。Chef...

    ansible chef puppet saltstack介绍和比较

    其中,Ansible、Chef、Puppet 和 SaltStack 是四种广泛使用的配置管理和自动化工具,它们旨在简化系统的部署、配置和管理过程。本文将详细介绍这四种工具,并对它们的特点进行比较分析。 #### 二、Ansible **简介:...

    puppet chef ansible

    "puppet chef ansible" 是三个非常著名的配置管理工具,用于实现基础设施的自动化。让我们逐一深入探讨这三个工具及其特点。 首先,Puppet是一款声明式配置管理工具,它的主要理念是通过定义系统状态来管理基础设施...

    Puppet,Chef,Ansible的共性

    本文试图找到类似Puppet、Chef、Ansible这样自动化配置管理工具的共性,以不至于迷失在杂乱的尘世中。总会有各种人为各种目的造概念,来让世界更复杂。本文同样适用于没有运维经验的人。因为我就是一个没有运维经验...

    puppet文档

    - **配置管理**:例如使用Puppet、Chef或Capistrano等工具对系统配置进行标准化管理; - **监控报警**:例如利用Nagios、Zabbix等工具实现对系统性能指标的实时监控,并在异常时发出警报。 #### 三、Puppet与其它...

    XXXX华东运维技术大会的资料--运维自动化-Puppet应用与.pptx

    【Puppet与其他自动化工具对比】 Puppet与cfengine和chef相比,有以下特点: - Puppet的安装和配置相对简单,而cfengine的安装可能较为复杂。 - Puppet使用基于Ruby的高级配置语言,而cfengine使用C语言,可能对...

    XX华东运维技术大会的资料运维自动化Puppet应用与.ppt

    **Puppet 与其他工具的对比** Puppet 与 cfengine 和 chef 这样的同类工具相比,各有特点。cfengine 具有轻量级和快速响应的优点,而 chef 更注重于开发人员的友好性。Puppet 的特点是稳定性高和社区活跃,提供了...

    软件工程中的软件配置管理与版本管理.pptx

    - **Chef:** 同样是基础架构自动化工具,专注于自动化配置和管理。 **发布管理工具:** - **Jenkins:** 持续集成/持续部署(CI/CD)工具,支持多种插件扩展功能。 - **Bamboo:** Atlassian提供的CI/CD服务,特别...

    Python-OpsMop是来自MichaelDeHaan的下一代配置管理平台

    与传统的配置管理工具如Puppet、Chef或Ansible相比,OpsMop强调了更细粒度的控制、更强大的错误检测和更强的审计能力。 1. **Python开发**:OpsMop是用Python编写的,这使得它具有良好的可读性和易用性,同时利用...

    自动化运维管理

    ### 自动化运维管理知识点详解 #### 一、自动化运维管理概述 ...Puppet作为一款优秀的配置管理工具,在自动化运维领域有着广泛的应用,通过了解其安装、配置和使用方法,可以帮助我们更好地实施自动化运维策略。

    Pro Puppeta

    - Puppet与其他工具(如Ansible、Chef等)的比较。 - 如何将Puppet与其他系统集成。 - 常用的集成工具和技术。 - 实现跨平台集成的最佳实践。 #### 9. **Reporting with Puppet(第9章:使用Puppet报告)** - ...

    电信设备-加载配置信息的方法和装置、计算机设备.zip

    因此,自动化配置管理工具,如Ansible、Chef或Puppet,被广泛用于批量部署和更新配置。 9. **故障排查**:当加载配置后设备出现异常,日志分析和故障排除技巧是必要的。这可能涉及到检查配置文件语法、设备状态报告...

    电力信息系统运维管理的自动化解决方案.rar

    1. 自动化运维工具:自动化运维通常涉及各种工具,如Ansible用于配置管理和部署,Nagios或Zabbix用于系统监控,Puppet或Chef实现基础设施自动化,以及Selenium进行Web应用测试等。这些工具能够帮助电力企业实现标准...

    DevOps for Networking

    - **实现方法**:使用配置管理工具如Ansible、Puppet或Chef等进行网络设备的配置管理。 ##### 4. **持续集成/持续部署(CI/CD)在网络管理中的应用** - **定义**:CI/CD是一种软件工程实践,用于自动化构建、测试...

    IaC:IaC工具的比较

    Puppet是另一种自动化配置管理工具,它可以用来定义和管理基础设施。Puppet使用声明式语言,强调资源的一致性。Puppet Enterprise提供了商业支持,适合大型企业使用,但在处理快速变化的云环境时可能显得复杂。 6. ...

    red hat9应用教程

    - Puppet与Chef:对比Puppet和Chef在RHEL 9上的应用。 4. **云原生应用**: - OpenShift集成:学习Red Hat的OpenShift容器平台,用于构建、部署和管理云原生应用。 - Istio服务网格:了解Istio在微服务架构中的...

    amo的编程小工具集合.zip

    5. **自动化工具**:如Ansible、Chef或Puppet,用于服务器配置和部署,可以极大地提升工作效率。 6. **包管理器配置**:npm(JavaScript)、pip(Python)、composer(PHP)等,可能会有amo的个人配置文件和常用包...

    PDF下载:TUP第二十五期:IT自动化运维

    2. **自动化工具的应用**:介绍各种常用自动化工具,如Ansible、Chef、Puppet等,它们如何简化配置管理、部署和监控任务。 3. **持续集成/持续交付(CI/CD)**:讨论CI/CD流程在自动化运维中的角色,如何通过自动化...

Global site tag (gtag.js) - Google Analytics