亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 云计算

Puppet 详解:自动化 DevOps 与加速部署

在 DevOps 中,您希望自动化尽可能多的任务。手动配置环境在庞大基础设施下耗时数周。等一切就绪,您正忙着救火而非实施如 Rancher 服务器等新有效解决方案。

Puppet 帮助自动化手动任务,快速配置系统和部署应用。动态基础设施管理是 Puppet 核心。

本文解释 Puppet 是什么、解决哪些问题、以及 DevOps 团队如何成功使用 Puppet 自动化手动工作。

Puppet 详解:自动化 DevOps 与加速部署

什么是 Puppet?

Puppet 是管理多台服务器的 IaC(基础设施即代码)工具。主要用 Ruby 编写,Puppet 在多种类 Unix 系统运行并支持 Windows。

软件高度成熟,初始版本发布于 2005 年。Puppet 提供免费开源版本,也有面向复杂基础设施的专有版本。

Puppet 用途

Puppet 自动化服务器配置管理和部署。软件使您能同时拉动多系统的“线”并管理状态,减少单独手动配置和管理服务器的需求。

Puppet 定义系统期望状态而非如何达成。配置应用于各种平台和设备,并在基础设施间维持状态。总体上,系统管理员少了救火需求,让 DevOps 团队实施更新、更好的服务器解决方案。

Puppet 详解:自动化 DevOps 与加速部署

Puppet 配置管理

自动化脚本帮助处理重复任务,如安装和配置服务器。但在大规模基础设施下,自动化脚本不扩展。

配置管理为大规模基础设施配置提供解决方案。这些实践被视为 DevOps 脊梁,允许在成熟 DevOps 流水线中更频繁、更可靠地发布软件。

服务器配置管理得益于基础设施即代码方法。Puppet 情况下,服务器管理代码用 Puppet 代码编写,类似 Ruby。该语言是声明式的,描述基于模型的配置。

Puppet 如何工作?

Puppet 采用客户端-服务器模式,包含以下系统:

以下章节解释 Puppet 核心元素和术语,帮助理清 Puppet 工作原理。

Puppet 拓扑与架构

Puppet 采用客户端/服务器架构,包含 Puppet Master 和 Puppet Agents。Puppet Agents 使用拉取模式轮询 Master,检索节点特定和站点特定配置信息。

拓扑流程:

  1. 运行 Puppet Agent 守护进程的节点收集自身所有信息(事实),Agent 将事实发送给 Puppet Master
  2. Puppet Master 使用数据创建节点应如何配置的目录,发回给 Puppet Agent
  3. Puppet Agent 基于目录自我配置,向 Puppet Master 汇报
Puppet 详解:自动化 DevOps 与加速部署

Puppet 使用名为 Facter 的工具发现系统信息。该工具随 Puppet 安装默认提供。

Puppet Master

Puppet Master 是运行在专用服务器上的守护进程。作为服务器节点,Puppet Master 是信息源和配置权威。Master 向所有 Agent 节点发送指令,监督系统配置。

Puppet Master 负责:

Puppet 通过专用用户和组使用身份访问管理,提供安全性并仅向 Agents 暴露所需信息。但非所有操作都需提权。

Puppet Agents

Puppet Agent 是运行在系统或节点上的 Puppet 守护进程。Agents 拥有节点上特定权限,应用从 Puppet Master 拉取的配置目录。

为获得通信权限,Agent 首次联系 Master 时请求 SSL 证书。每次 Agent 请求配置更新前都会检查证书。Master 也向 Agents 认证以确保正确配置信息。

Puppet Agents 修改系统配置,执行任务需 root 权限。

Puppet 加密与通信安全

Puppet 使用 OpenSSL 进行通信和安全。基于 SSL 和 TLS 协议,Puppet 使用标准 SSL/TLS 加密和 SSL 证书进行 Agent/Master 认证和验证。此外,Puppet 使用 SHA-256 作为默认哈希,通过 SSL/TLS 加密 Agents 和服务器间流量。

Puppet 加密方法确保:

Master 生成自己的 CA 证书、私钥、CRL(证书吊销列表)和服务器证书。服务器证书发送给 Agents 以启用 SSL 和 TLS 通信。

Puppet 优势及为何使用它

Puppet 是历史最悠久、最流行的配置管理自动化工具之一。以下五大优势是开始使用 Puppet 的充分理由。

1. 开源

Puppet 开源,使技术可扩展。自定义库和模块丰富个别项目以适配您的用例。

开源也带来活跃社区优势。大量讨论、论坛和专家随时准备帮助解答疑问。

2. 资源抽象

配置任务重复,不同操作系统的服务器常需通过平台特定步骤执行相同步骤。记住所有命令不可能。

Facter 帮助 Puppet 掌握细节并实现抽象。系统特定数据和操作系统细节都为 Puppet 所熟知,得益于 Facter。

3. 幂等性

冗余配置在众多服务器下是复杂问题,Puppet 旨在仅应用影响系统的变更。若基础设施期望状态已达成,Puppet 不运行命令。此 Puppet 特性称作幂等性,有助于减少冗余、提高效率。

4. 跨平台

Puppet 覆盖广泛平台,增加配置自动化进程中的服务器数量。工具支持 Windows、OS X、基于 Debian 系统、Fedora、Gentoo、RHEL 和 Solaris。

5. 灵活

Puppet 语言包含覆盖指令和为不同场景创建例外的方式。Puppet 还协助定期调度特定维护操作。

结论

Puppet 是管理配置和服务器任务的强大工具,是不频繁动态变更的稳定服务器的绝佳选择。

要了解 Puppet 与其他同类技术对比,阅读我们的对比文章:Ansible vs. Terraform vs. Puppet。

云计算

  1. 金刚石车削:先进光学及更多领域的精密加工
  2. 超声加工解析:工艺、优势与局限
  3. 旋转成型:制造中空塑料件完整指南
  4. 铬镀详解:工艺、步骤与应用
  5. 冲子工具详解:木工必备的精密利器
  6. 摩擦钻削技术解析:热能切割实现更快更洁净的钻孔
  7. 点焊工艺全解析:原理、优势与局限
  8. 镀锌铁详解:锌层如何为钢铁提供长效防护
  9. 球磨机全解析:定义、原理与传统铣床的本质区别
  10. 氧传感器 (O2) 详解:作用、位置与故障征兆
  11. 云端重新平台化:定义与高效迁移驱动力
  12. 什么是A2钢?工业与木工通用的高性价比工具钢牌号