跳转至相应部分

Ansible vsSalt:您需要了解的一切

复制 URL

Ansible 和 Salt 都是社区开源的 IT 自动化工具。两者皆可通过自动执行日常任务来简化 IT 运维和 DevOps 工作,例如配置和置备系统、部署软件,以及跨大量服务器或端点设备管理更新等任务。

Ansible 以简单易上手而闻名,这归功于其采用更加灵活的无代理方法,无需在要自动化的目标设备上安装额外软件。相比之下,Salt 采用基于代理的方法,这意味着每台机器上都需要安装软件。就自动化方法而言,Ansible 和 Salt 都基于 Python。Ansible 使用 YAML 配置文件和程序性自动化(定义要依序运行的步骤),而 Salt 使用一个小的 YAML 子集来映射常用的数据结构,例如列表和字典。 

本文将更加详细地阐述 Ansible 和 Salt 之间的异同。

Ansible 和 Salt 对比市面上其他 IT 自动化工具有什么不同?Ansible、Salt、Puppet 和 Chef 是常用的 4 种开源 IT 自动化工具。每一款工具都采用不同的自动化方法,并且它们都有不同的软件公司提供的企业级解决方案版本。许多 IT 部门出于多重目的,会使用多个解决方案,甚至结合使用多个方案。

  • Ansible 于 2015 年被红帽收购,成为了红帽® Ansible® 自动化平台的支柱产品。
  • Salt(商业化产品称为 SaltStack)于 2020 年被 VMware 收购,纳入成为 vRealize Automation 产品组合的一部分,该产品组合最近更名为 VMware Aria Automation。VMware 于 2022 年被 Broadcom 收购。 
  • Puppet 由 Perforce 提供支持,可用于包括 Puppet Enterprise 和 Puppet Bolt 在内的一系列商业产品。
  • Chef 于 2020 年被 Progress 收购,作为 Chef 企业自动化堆栈加入了该公司的商业产品行列。 

Ansible

Ansible 是开源的命令行式 IT 自动化软件应用,采用 Python 编写。它能够配置系统、部署软件和编排高级工作流,以支持应用部署、系统更新、网络配置和运维等工作。红帽 Ansible 自动化平台是基于 Ansible 而打造的订阅产品,可提供许多企业级功能。

Ansible 的强大源自于其社区。它的主要 GitHub 存储库吸引了成千上万的贡献者,并且截至 2022 年秋季,已有数万个项目的存储库依赖于它。广受欢迎的用户大会 AnsibleFest 每年举行一次,而 Ansible Meetup 聚会也定期在全球各地举办。生气勃勃的用户社区反映出 Ansible 拥有大量专业人才,许多贡献者使 Ansible 与其他流行软件项目保持着紧密可靠的集成。Ansible 用户可以访问数百种模块和插件,进一步扩展其功能。

Ansible 的设计针对简单性和易用性作了提升,同时也十分注重安全性和可靠性,尽量控制了可以移动的部件数。它使用 OpenSSH 进行传输(其他传输和拉取模式作为替代选择),并使用人类可读的语言,用户无需大量培训即可迅速上手。

Ansible 使用控制节点(Ansible 在控制节点中执行)和托管节点(自动化的设备通常是 Linux® 或 Windows 计算机)两种概念。由于 Ansible 是无代理的,它可直接与设备通信,无需在托管节点上安装应用或服务。Ansible 自动化平台可以使用一种称为自动化网格的技术将自动化作业分散到各个执行节点。  

Ansible 用户可以使用 Ansible Playbook 精细编排其基础架构的不同部分,这些 Playbook 都是用人类可读的 YAML 语言编写的文件。Ansible 使用一种程序性(或命令式)编程方法,用户需要明确地指定每一步操作,告诉系统如何逐步达到预期的结果,以此来维护 IT 基础架构的配置。

Salt

Salt 是用 Python 编写的模块化开源 IT 自动化应用。Salt 专为高速数据收集和执行而设计,是一种配置管理工具,具有轻量级 ZeroMQ 消息传递库和并发框架,可在服务器和代理之间建立持久的传输控制协议(TCP)连接。 

与 Ansible 一样,Salt 也使用 YAML,因此易于学习和管理。不过,它采用基于代理的架构,新用户可能需要较长时间才能掌握,即使是经验丰富的 DevOps 专业人士,使用时也可能遇到困难。在 Salt 中,服务器称为 salt master,客户端称为 salt minion。客户端作为代理在客户端计算机上运行。它可以配置多个服务器,如果一个服务器停机,代理可以连接列表中的其他服务器。服务器会将配置推送到所有客户端,因此会立即进行远程执行。 

由于 SaltStack 被 VMware 收购,Salt 开源社区的规模有所缩小,依赖于它的项目数量要少于 Ansible(根据截至 2022 年秋季的 GitHub 分析数据)。VMware 在 2022 年被 Broadcom 收购之后,重点更多地放在 VMware 产品的自动化上,较少关注网络以及多供应商或多用途用例,这不仅拉大了 IT 技能差距,并且 Salt 社区在企业层面的支持变得不太确定。     

基于代理的架构指的是一种基础架构和自动化模型,该模型需要称为代理的特定软件在托管环境中运行。代理及其所有依赖项需要安装到每一目标节点上,因此需要额外的安全检查和规则。如果自动化目标上不可使用代理或不允许运行代理,这可能会成为一个难点。代理也需要定期维护。

无代理架构(即 Ansible 使用的架构)指的是一种对 IT 设备进行自动化和管理的方式,它不需要在托管环境中安装任何代理软件。控制软件通过 Secure Shell(SSH)连接到远程计算机,无需大量设置工作即可开始管理这些计算机。在这种架构中,一旦完成配置,便不再需要维护部署系统。

配置管理是指将计算机系统、服务器和软件维持在期望的一致状态的过程。它确保系统在以后发生变化时能够保持正常运行。配置管理可以自动化,从而降低成本、复杂性和手动错误的风险。  

DevOps 和 DevSecOps 分别代表开发运维,以及开发、安全防护和运维。它们是针对文化、自动化和平台设计的方法或策略,将安全防护作为贯穿整个 IT 生命周期的共同责任。DevOps 和 DevSecOps 其实是一回事,因为 DevOps 从头到尾都已然将安全防护纳入其中。但许多人还是喜欢专门称为 DevSecOps,更明确地强调这种含义。

YAML 的全称是 Yet Another Markup Language(即“另一种标记语言”的意思),不过也有说法是“YAML 并非标记语言”的缩写,是一种常用于编写配置文件的数据序列化语言。YAML 旨在做到人类可读且易于理解,并且可以与其他编程语言结合使用。YAML 是 JavaScript Object Notation(JSON)的超集,包括了它的所有特性,但又更为强大和灵活。

挑选自动化解决方案不仅要看当前可用的功能,还要考虑平台更长远的前景。得益于高度活跃的开源社区和来自红帽的支持,Ansible 在众多工具中脱颖而出。

此外,企业组织同时使用多个自动化解决方案也是常态。Ansible 可打通一个受支持的大型集成生态系统,可作为自动化工具的编排器与众多其他自动化和配置管理工具搭配。此外,Ansible 还可对公共云超大规模环境中的系统进行自动化,例如 Amazon Web Services(AWS)Microsoft AzureGoogle Cloud Platform 等。

如果用户喜欢简单易用且无代理的自动化解决方案,那 Ansible 比 Salt 更加合适。Ansible 还背靠一个庞大的贡献者和合作伙伴社群,在网络和基础架构自动化等不同的 IT 领域被广泛采用,而且因其能与其他工具集成而广受欢迎。

红帽 Ansible 自动化平台以开源为核心,是一款经过安全强化且久经检验的订阅产品,可为企业组织提供完整的生命周期支持。其上游项目 Ansible 凝聚了全球数千名贡献者的经验和智慧。 

Ansible 自动化平台囊括了众多上游组件、来自 60 多个合作伙伴的、经过红帽 Ansible 认证的 140 多个内容集,以及即服务型投资回报率(ROI)工具,可大大消除企业组织在安装、配置和支持自动化时的不确定因素。它能专门针对跨职能团队打造端到端的自动化体验,同时在自动化开发人员、工程师和运维团队之间提供即装即用的体验。

红帽 Ansible 自动化平台的功能(例如自动化分析和红帽智能分析)可提供关于自动化性能的信息,您可以根据这些信息更加精确地衡量影响并监控或解决问题。自动化网格通过独立地扩展控制和执行容量,使自动化延伸到更接近需要自动化的端点,而且几乎不会有停机时间,让您从数据中心到云端乃至边缘位置,都能获得一致的自动化体验。

作为一种无代理、易用的 IT 自动化选择,Ansible 在简单易用、灵活性高和强大的用户社群方面更有显著优势。

IDC 报告:Ansible 自动化平台带来的商业价值

根据 IDC 的研究表明,使用 Ansible 自动化平台实现运营标准化的企业组织可显着提高 IT 运营效率、速度和可扩展性,平均每年实现价值 1481 万美元的收益,并获得 668% 的三年投资回报率。

获取报告

扩展阅读

文章

Ansible 基础知识入门

Ansible 是一种对 IT 流程自动化的工具,如置备和配置管理等流程。希望能通过这篇 Ansible 关键概念的介绍,帮助您了解 Ansible 的基础知识。

文章

什么是业务流程管理?

业务流程管理(BPM)是指对端到端业务流程进行建模、分析和优化,以实现战略业务目标。

文章

为什么选择红帽实现自动化?

红帽 Ansible 自动化平台中包含了在团队间分享自动化以及实现企业级自动化所需的各种工具。

详细了解自动化

产品

红帽的战略顾问将从大局出发,以战略性视角审视企业发展,分析您当前面临的业务挑战,并提供全面、低成本、高效益的解决方案,帮助您轻松应对各项挑战。

无论您处于自动化之旅的哪个阶段,这个实施企业级自动化的平台都能助您一臂之力

相关资源

培训

免费培训课程

Ansible 必备:轻松实现自动化之技术概览

免费培训课程

针对 SAP 的红帽 Ansible 自动化

红帽 Ansible 自动化平台学习中心

利用红帽专门准备的学习材料和工具,一步步学习使用红帽® Ansible® 自动化平台。