什么是 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 主控的中央服务器的清单文件中,并在称为代理的远程客户端服务器上执行这些清单。

木偶模型来源:cisco.com

这些是主要的 Puppet 组件:

  • Master Puppet 服务器:该服务器使用配置文件处理连接到每个代理的信息,并管理代理上的部署和配置。
  • Puppet agent:这是master管理的服务器软件
  • 事实:这些是全局变量,包含有关每个服务器的详细信息,例如操作系统、网络接口等。它们用于分析任何节点的当前状态。
  • 目录: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)或通过 在线聊天 或任何你喜欢的方法。 我们为您努力工作,以便您可以放松。

相关阅读:

Posted in: Linux