Ansible VS Puppet IT配置工具哪个好?

由于计算量的指数级增长,以及虚拟化和云计算等新技术的出现。如今的IT系统管理员和DevOps 工程师管理多个服务器,服务器的数量比起10年前多了很多。

Ansible VS Puppet IT配置工具哪个好?


因此,像 Puppet 和 Ansible 这样的工具正在迅速成为管理大量服务器(如数据中心)的基本工具。它们通常称为配置管理 (CM) 和远程执行 (RE) 工具。允许管理员在多台服务器上同时执行操作,只需单击一下即可部署多个应用,使配置和维护数十台、数百台甚至数千台服务器变得更加容易。

在这里,我们将学习两种流行的配置管理工具,即Ansible和 Puppet 之间的区别




Ansible的历史:

Ansible于 2012 年由AnsibleWorks推出,现在由红帽收购,其市场份额已经超越Puppet。Ansiblet也有开源版本和企业版。Ansible使用 Python 编程语言编写,旨在轻量使用快速部署功能。Python 内置于 Linux 和 Unix 系统中,因此Anisible的安装和运行 是相当简单和快速。

Anisible是无代理模式,通过 SSH 执行所有功能,易于设置或使用。对于更复杂的任务,在称为playbook的配置文件中,通过 YAML 语法处理配置。Ansible包括数百个模块,支持更广泛的集成,如 AWS 等。Ansible 已经变得更加流行,并且越来越多的公司正在部署Ansible

Puppet的历史:

Puppet于2005年推出,已经存在了很长时间。它由Luke Kanies创立,用Ruby编程语言编写。Ruby 是一种开源编程语言,在所有主要操作系统(如 Linux、Windows、Unix、Mac OS 等)上运行。

几个大牌客户使用Puppet,如甲骨文公司、戴尔和谷歌。拥有这样的大客户总是为产品提供一定程度的可信度。Puppet 还拥有最成熟的界面。Puppet 有开源版本,通过PuppetLabs发行企业版,提供商业支持。Puppet现在开发比较慢,对用户的反馈处理不快,如新功能添加或修复错误等等。




Ansible vs Puppet – 设置

Ansible有控制节点Master,在客户端计算机上无需运行代理。大多数功能通过 SSH 协议执行。它非常简单,没有代理。在控制节点上创建 SSH 密钥对,然后将其复制到客户端计算机。使用YAML语法。复杂任务在名为playbooks的文件中管理。Ansible用 Python 编写的,内置在大多数 Linux 和 Unix 版本中,容易设置和安装。

Puppet基于client-server体系结构,您可以在多个服务器上同时安装 Puppet。Puppet使用自己的declarative language,根据环境和需求安装大约需要 10 到 30 分钟。对于 Puppet 来说,设置涉及更多。您需要将主节点和代理节点配置为具有相同时间和时区的所有节点。配置Puppet主机的 /etc/主机文件以解析所有托管客户端。启动 PuppetServer 服务,并使其能够在端口 8140 上接收客户端连接。需要在每个客户端上安装Puppet代理软件。尽管Puppet在设置方面很复杂,但在使用方面,Puppet比 Ansible 具有某些优势。最大的优点是,如果您有任何语法错误,则在运行任务之前,它们会快速在 Puppet 中突出显示。Ansible任务按特定顺序执行,在执行完整任务之前,不会通知您任务的失败。

Ansible vs. Puppet: 高可用

AnsiblePuppet的可用性都比较高。Ansible 具有辅助节点,如果活动节点发生故障,可以切换到辅助节点。而Puppet 有多个主节点用来替代出问题的主节点。

Ansible vs. Puppet: 模块

Puppet的repository叫Puppet Forge,而Ansible's的repository是Ansible Galaxy.。Forge有近6000个模块,得到了Puppet的大力支持。基本上开箱即用。Ansible Galaxy 的模块相对较少,您必须花更多时间手动调试内容。

Ansible vs. Puppet: 管理和调度

在 Puppet 中,客户端从服务器提取pull配置。而在 Ansible 中,服务器将配置push推送到节点以进行快速部署。Puppet使用自己的declarative language来编写配置,而 Ansible 使用 YAML 编写配置。

在计划调度方面,Puppet 代理几乎每 30 分钟检查一次,以确保节点处于所需状态。Ansible 的免费版本没有该功能,您可以使用企业版" Ansible Tower "来使用此功能。总体而言,Ansible 缺乏Puppet的高级功能。

Ansible与Puppet:可扩展性

Ansible 和 Puppet 都能很好地扩展,但它们使用不同的传输机制来实现此目标。实际上,无论您需要管理几百个或多达数万个节点,每个平台上都可以使用一些调整和策略来方便地扩展到该级别

Ansible与Puppet:支持

Puppet比Ansible多存在几年。有更多的支持和更大的开发人员社区。Puppet有一个专门的支持团队,具有丰富的知识库,也提供两个级别专业支持,包括标准和高级版。您可以访问活动或参与其他渠道获取社区支持。全球还有 200 多个会议,每年都有大量用户和贡献者参加。总体而言,Ansible 的开发人员社区比 Puppet 小,网上的资源支持相对较少。不过ansible社区的活跃度似乎超过了Puppet

Ansible vs. Puppet: UI图形界面

Puppet的图形用户界面比Ansible更友好。支持用于查看、管理和监视更复杂的任务,在需要时也可以使用 CLI(命令行接口)

在创立时,Ansible 只是一个命令行工具。现在,它在企业版本中具有 UI图形界面,但它并不完美。UI 界面与命令行没有完全同步,无法执行与命令行相同的操作。

Ansible vs. Puppet: 价格

Ansible 和 Puppet 都有免费和开源的版本。对于商业版本,您必须支付一定金额,具体取决于您希望使用的支持级别:

  • 例如,如果您尝试Puppet企业版,它免费支持 到10 个节点。标准版每个节点的成本为 100 美元,高级版的每个节点的成本为 199 美元。
  • Ansible有三个级别的定价。首先是 100 个节点的每年 5000 美元的自助服务self-support。第二个是标准版, 100 个节点每年 10,000 美元。第三个是高级版,100 个节点每年 13000 美元。

Ansible与Puppet - 代码示例

Ansible的代码示例:使用 YAML 和declarative management style。使用 Ansible,您可以在playbooks编写代码。下面是一个tomcat配置快速代码示例:

Ansible VS Puppet IT配置工具哪个好?


Puppet代码示例:Puppet工具是用Ruby编程语言编写的,语法与C编程语言非常相似。如果您知道任何编程语言,如 C、C++、Java、Perl 等,那么您可以快速开始在 Puppet 中编写代码。

下面是有关如何如何安装 MySQL 客户端包并对其进行配置的示例代码:

Ansible VS Puppet IT配置工具哪个好?

Ansible VS Puppet IT配置工具哪个好?


Ansible的与Puppet - 选择哪一个?

取决您的业务需求。Ansible适用于小型和简单的环境部署,而 Puppet 通常用于更复杂的或大型环境的部署。另外取决于您团队的技术栈,如果以python为主,自然选择ansible,熟悉ruby,可以选择Puppet。

Ansible VS Puppet IT配置工具哪个好?


分享到:


相關文章: