Ansible 与 Chef:Ansible 与 Chef 的区别 [2022]

已发表: 2021-01-10

配置管理是使计算机、服务器和软件保持有序和一致状态的过程。 该过程用于确保所有系统都按预期工作。 有时,如果他们不这样做,那么您必须对系统进行一些小的修改。

如果在没有记录的情况下对许多系统和服务器进行修改,那么整个基础架构可能会变得不稳定和不一致。 配置管理确保所有这些修改都不会被发现。 Ansible、Chef 和 Puppet 等工具用于配置管理。

在本文中,我们将对Ansible 与 Chef进行比较,以更好地了解它们。

目录

什么是 Ansible?

Ansible 是一个简单的开源 IT 自动化引擎,它具有许多模块,用于与DevOps 工程师所需的应用程序和服务进行交互。 它可以自动化应用程序部署、服务内编排和完整的应用程序生命周期。 它由 Michael DeHaan 开发,最初于 2012 年发布。

部署 Ansible 很容易,因为它不使用客户端的自定义安全基础设施。 模块被推送到客户端。 在客户端本地执行完这些模块后,将执行结果推送回 Ansible 的服务器。 使用 Ansible 与客户端连接很简单,因为使用了SSH 密钥 客户端详细信息(例如 IP 地址和主机名)存储在 Ansible 可以使用的清单文件中。

Playbook 是 Ansible 的重要组成部分,它使用一种称为 YAML 的简单语言进行编码。 棘手的任务被转换为可重复的剧本以简化配置。 如果需要,这些剧本可以很容易地理解和调试。

Ansible 使用 Python 编程语言进行编码。 必须配置的服务器需要有 Python 库。

Ansible 的优势

  • 设置 Ansible 很简单。 无需任何编程技能即可使用这些剧本。
  • 无论部署在何处,都可以编排任何应用程序环境。
  • 对于自动化客户端系统,无需安装软件或防火墙端口。 不需要单独的管理结构。
  • 部署多层应用程序很容易。 无需在每台机器上手动配置这些应用程序。
  • Ansible 帮助开发人员自动化日常配置管理任务。 反过来,这可以腾出他们的时间,让他们可以专注于其他重要任务。

查看:印度的全栈开发人员薪水

什么是厨师?

Chef 是另一个用于基础架构自动化的强大配置管理工具。 它由软件公司OpsCode的创始人 Adam Jacobs 开发 无论您是在混合环境还是云环境中工作,Chef 都会自动执行基础架构配置、管理和部署。

Chef 通过自动化应用程序生命周期来帮助公司变得更高效、更快。 使用此软件可以自动执行重复配置任务。

Chef 是使用Ruby编程语言编写的。 而且,它有一个基于 Ruby 的 DSL 命令行界面。 它可以在客户端服务器上运行,也可以作为独立工具运行。 Chef 是开源的,可用于云配置。 该工具可以将系统管理任务转换为称为食谱和食谱的定义。

您可以在各种平台上运行 Chef,例​​如 Windows、Linux、FreeBSD、Solaris、Cisco IO、AIX 和 Nexus。 它还兼容大量云平台,如 Google Cloud Platform、Amazon Web Services (AWS)、OpenStack、Microsoft Azure 和 IBM Bluemix。 使用刀实用程序,Chef 可以轻松与多个云平台集成

大厨的优势

  • 自动化功能可帮助公司在软件开发的不同阶段降低风险并提高合规性。
  • 它通过自动化云基础设施和正确处理手动任务来提高任何公司 DevOps 团队的效率。
  • 该工具为软件部署提供了无缝管道,包括构建、测试、部署、监控和故障排除应用程序。
  • 在部署之前,需要纠正所有代码错误。 Chef 使这变得更容易,从而提高了系统的弹性并减少了停机时间。
  • 使用 Chef 可以更轻松地转移到不同的云环境。 它处理您的云和数据中心,即使您更换云提供商,您也可以继续使用此工具。

您现在对这两种配置管理工具有了更好的了解,让我们比较它们,了解它们的区别。

Ansible vs Chef:头对头比较

Ansible与 Chef的比较将基于以下参数进行:

安装和设置

对于 Ansible,没有代理在客户端机器上执行。 因此,不需要客户端-服务器安装。 SSH 连接用于登录客户端计算机和配置节点。 客户端的虚拟机不需要特殊设置。 因此,安装很容易。

在 Chef 中,服务器将在主机上运行。 而且,Chef 客户端代理将在每台客户端计算机上运行。 所有经过测试的配置都存储在工作站中,这些工作站会推送到 Chef 的中央服务器。 因此,设置所有这些有点棘手。

配置管理

Ansible 使用YAML(另一种标记语言)来管理其配置。 这种语言类似于英语,易于理解。 使用 YAML,配置被推送到各个节点。

在 Chef 中,使用了 Ruby 领域特定语言。 这种语言从服务器中提取配置。 因此,您需要对 Ruby 有足够的了解。 这比 YAML 具有更陡峭的学习曲线。

静态/动态库存

Ansible 可以使用静态和动态清单,例如包含分成多个部分的主机的平面 INI 文件。 Chef 不提供这种灵活性,因为您必须在 Chef 服务器上单独注册主机。

价钱

对于使用 Ansible 的基本 IT 操作,您必须每年为 100 个节点支付 10,000 美元,包括 8×5 支持。 高级套餐每年 14,000 美元,提供 24×7 支持。

Chef 更实惠,因为它配备 137 美元/节点,包括您开发和部署所需的一切。

真相的来源

事实来源是系统的权威配置。 在 Ansible 中,这可以是正在部署的剧本。 源代码控制系统,例如 Git 可以用作事实的来源。

在 Chef 中,Chef 服务器充当事实来源。 在这里,您必须上传更新的食谱,有时上传到多个服务器。 以这种方式很难保持食谱的一致性。

另请阅读:初学者的全栈项目创意

从世界顶级大学在线学习软件课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

厨师年纪大了,有更好的文档,可以处理困难的任务。 但是,与 Ansible 相比,安装起来更棘手。 Chef 的 Ruby DSL 受到开发人员和 DevOps 工程师的青睐。 但是,与使用简单 YAML 的 Ansible 相比,它的学习曲线陡峭。 如前所述,与经济实惠的 Chef 相比,Ansible 有点贵。 Ansible 与 Chef之战中,选择取决于公司的要求。

如果您有兴趣了解有关全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为在职专业人士设计,提供 500 多个小时的严格培训、9 个以上的项目,和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

什么是 Ansible?

Ansible 是一种 IT 自动化工具,可简化配置、配置管理和应用程序部署。 Ansible 是无代理且易于学习的。 它可以自动化任何服务器、云或平台上的应用程序。 此外,Ansible 正在成为 DevOps 运动的关键组成部分。 Ansible 可用于管理云基础设施,最常见的是 AWS。 它可用于服务器供应和配置、部署、持续交付、持续集成、持续集成测试、IT 自动化、网络自动化和编排。 Ansible 支持用于管理云基础设施的模块,包括 OpenStack、AWS 和 Rackspace。 Ansible 的开放式架构允许使用新模块轻松扩展。

DevOps 中的 Chef 工具是什么?

Chef 是一个 DevOps 工具,它在开发人员和运维人员之间架起了一座桥梁。 它是一个使应用程序交付过程自动化的配置管理平台。 Chef 是一个简单而强大的自动化平台,可将基础架构转换为代码。 此配置管理工具允许自动化软件交付过程。 该软件旨在管理服务器及其应用程序的各个方面。 Chef 可以同时管理多个服务器。 Chef 可以与 Circle CI/CD、Jenkins 等其他 DevOps 工具集成。Chef 在配置层工作,并由脚本自动化。

Ansible 和 Chef 有什么区别?

Ansible 是一个开源 IT 自动化工具,而 Chef 是一个商业自动化工具。 Ansible 用于应用程序部署的配置管理和自动化。 它适用于更新 RHEL / Linux 操作系统等简短命令。 Chef 是用于配置管理和应用程序部署的自动化工具。 Chef 使用 Ruby 作为编程语言。