什么是 Puppet,它在 DevOps 中扮演什么角色?

什么是木偶?

Puppet 是一个跨平台的基于客户端-服务器的应用程序,用于配置管理。 它在多个服务器上处理软件及其配置。 有两个版本可用。 一个是开源的,另一个是商业版本。 它适用于 Linux 和 Windows 平台。 它使用声明性方法来自动执行更新、安装和其他任务。 此功能允许软件使用称为清单的文件配置这些系统。 清单包含受控服务器组或类型的指令。

企业版包含附加功能,例如:

  • 提供基于角色的访问控制,允许将任务委派给指定的管理员组。
  • 它收集有关生产力和可操作性的系统指标的报告。
  • 它还使用日志提供事件检查,以提供有关节点、类和资源更改的报告。 这个功能简单地描述了此时 Puppet 管理的服务器上正在发生的事情。

什么是 DevOps?

DevOps(或开发运营)是一组方法论,用于通过持续集成、各种专家的交互以及 IT 运营中使用的自动化工具来提高开发流程和软件实施的效率。 DevOps 通常与融合这些领域的系统管理相关联。 很多时候,管理员从 IT 职位转移到 DevOps,因为他们通常具有相似的背景。

DevOps 工程师通常具有更全面的功能,他们通过应用流程自动化将所有阶段连接成一个整体。 他们收集代码、描述基础设施、迅速部署测试环境,并在不损失质量的情况下快速更新生产。

DevOps 的一项关键任务是找到使所有流程自动化的方法,以便企业能够尽可能快速、定期地更新产品。 为了完成这项任务,DevOps 专家对现代技术有着广阔的视野。 DevOps 经常与所有部门就开发的各个阶段进行沟通。

接下来,我们将讨论 Puppet 如何影响 DevOps 以及它在该环境中的用途。

为什么要使用木偶?

首先,让我们确定什么是配置管理。 配置管理通过在服务器的整个生命周期中保存物理和功能属性、设计、需求和操作信息来维护和确定产品特性。

木偶大师

过去,系统管理员通常手动设置和配置软件和系统。 但是,当需要管理的服务器数量迅速增加时,就需要工具来自动化这些流程、节省时间并提高准确性。 Puppet 是完成这些任务的软件。

木偶的优势

这些是 Puppet 的主要优点:

  • Puppet 通过提高部署速度来节省时间。
  • 与其他工具不同,它会定期了解配置更改,从而提高安全性。 (在任何系统中配置部署后)
  • 它使用一种称为 DSL(或域特定语言)的易于学习的语言来管理主机配置。
  • 它使 DevOps 管理员能够为每个主机创建独特的配置,并为多个主机创建布局和配置设计。
  • Puppet 是一种解决配置瓶颈和速度延迟的廉价方法。
  • 它很容易与其他工具和基础设施集成。

木偶如何工作?

Puppet 有一个简单的客户端/服务器架构工作流程。 主服务器包含有关各种节点配置的所有信息。 它将这些配置存储在名为 Puppet Master 的中央服务器中的清单文件中,并在称为代理的远程客户端服务器上执行这些清单。

木偶模型资料来源:cisco.com

这些是主要的 Puppet 组件:

  • Master Puppet 服务器:此服务器使用配置文件处理连接到每个代理的信息,并管理代理上的部署和配置。
  • Puppet agent:这是由master管理的服务器软件
  • Facts:这些是全局变量,包含有关每个服务器的详细信息,例如操作系统、网络接口等。它们用于分析任何节点的当前状态。
  • 目录:Puppet 管理的所有配置都编译成一个目录。 稍后,这些目录用于配置目标系统。
  • 清单:这些是存储资源信息的文件。 清单包含有关需要检查和编辑的服务、数据包、文件的信息。 清单具有 .pp 扩展名。
  • 模块:模块是清单中的一组文件,组织起来便于协作使用。
  • Puppet 类:与其他编程语言一样,类使用重复的代码部分来组织它以增加阅读和理解。
  • Puppet 块代码编码中的资源是通过宣布可以表示数据包、文件、用户或命令的资源来定义的。
  • 节点:节点是安装了客户端的托管服务器。

它使用什么流程?

现在让我们分步回顾这个过程:

  • Puppet 管理的节点安装了 Puppet 代理。
  • 代理使用事实收集有关其专用节点配置的信息。
  • 在此之后,代理向主节点发送通知。
  • 收到数据后,主节点根据节点“应该”如何配置来组装一个目录。
  • 然后主服务器将目录发送给代理。
主代理来源:docs.oracle.com

每个代理都使用这些信息目录对节点的配置进行必要的更改。 如果需要任何更新,它会向主服务器报告。 如有必要,Puppet Master 可以将报告的访问权限授予第三方工具。

Puppet master 和 Puppet 代理应该相互交互,以便 Puppet 正常工作。 一个 Puppet master 通过 HTTPs(安全超文本传输​​协议)连接到代理来检查客户端; Puppet master 提供了一个 HTTP 接口。 当 Puppet 代理向 Puppet Master 发出请求或分派时,它会向 Puppet Master 提供的 HTTP 接口中可用的端点之一发送 HTTPs 请求。

为什么在 DevOps 中使用 Puppet?

Puppet 在 DevOps 中经常被使用和应用,所以让我们回顾一下它在 DevOps 中使用的原因。

  • Puppet 通过自动化操作和部署工作流程将持续交付模型应用于软件发布周期
  • 由于 Puppet 和其他用于服务器管理的自动化系统,系统恢复速度很快,因此可以最大限度地减少或避免由配置问题引起的空闲时间
  • 与脚本不同,Puppet 可以在大型基础设施中很好地工作,并且可以轻松地自动化重复性任务; 此外,它得到了很好的支持
  • Puppet 在以下领域拥有广泛的部门支持 Cloud 和 DevOps 生态系统,通常应用于自动化。
人偶配置

可扩展性和一致性、可移植的基础架构、灵活性和持续的基础架构分析是 DevOps 需要关注的重要方面。 当使用 Puppet 时,许多这些问题都得到了解决。 DevOps 还有许多其他有用的工具可供使用,而且范围不断扩大。 新工具之间的区别在于它们不那么受欢迎,而 Puppet 具有良好的声誉,显示出显着的进步,并且被许多大型 IT 公司使用。

结论

在本文中,我们浏览了与 DevOps 和 Puppet 相关的许多内容。 我们还审查了该工具的主要功能、它的工作原理以及为什么应该使用它或将其作为有用的工具加以考虑。

我们以成为 Hosting™ 中最有帮助的人而自豪!

我们的技术支持人员全年 365 天、每周 7 天、每天 24 小时随时可以帮助解决与本文相关的任何问题。

我们可以通过我们的票务系统 [email protected]、电话(800-580-4986)或通过 在线聊天 或您喜欢的任何方法。 我们为您努力工作,以便您可以放松。