Puppet:基于 Ruby 的服务器管理自动化套件

  • Carlos Armas
  • 丁雪丰

2010 年 2 月 24 日

话题:Ruby技术管理Linux架构DevOps语言 & 开发

Reductive Labs的团队最近发布了Puppet 的 0.25.2 版本,Puppet 是针对 Linux 和 Unix 服务器的基于 Ruby 的开源配置管理及自动化工具。在 本次的 Bug 修正版本中,关闭了 123 个问题,开发者宣称他们减少了内存使用、改进了错误报告、线程和锁争夺(这是造成系统挂起的问题之一)。

通过客户 - 服务器模式和其独有的声明式语言,Puppet 试图解决系统管理领域的一大挑战:如何自动化服务器配置管理和部署,这是大型数据中心部署的必要条件。GigaOM 2009 年 11 月的一篇文章中将 Puppet 列为云计算最重要的 11 个开源资源之一,Matt Asay 建议Cisco 应该考虑收购 Reductive Labs,将其作为目前数据中心策略中的一部分

[...] Cisco 的数据中心要使用 Unified Computing,Cisco 应该关注一家开源公司:Reductive Labs,它是自动化系统管理框架 Puppet 的创造者

对于系统管理员来说,长久以来对通过自定义脚本来自动化日常管理工作已经习以为常了。随着服务器数量、操作系统种类、网络复杂性的增加,维护这样一套自定义工具变得越来越麻烦了。Puppet 并不是唯一的配置管理工具。Mark Burguess 的Cfengine是另一个被广泛使用的工具,还有美国阿贡国家实验室的计算机科学部开发的BCFG2。我们并不想比较不同工具的优缺点,如果对此感兴趣,Luke A. Kanies 的博客是个不错的起点。

Puppet 通过与传统的脚本 - 自动化模式不同的方式实现了配置管理:

  • 它提供了一种领域特定语言对服务器、服务和服务对象的关系进行建模
  • 它让系统管理自动化更接近于软件开发,用函数化、可重复的代码来表示基础设施
  • 它的抽象层次提供了一定的灵活性,对于系统管理员而言,他们现在需要管理更多错综复杂的服务器配置,这些服务器可能是放在家里的、由专业托管商或者是云计算提供商托管

Puppet 背后有一个活跃的开发社区。有多个可下载的附加项目,最近刚发布了一个新的基于 Web 的仪表盘。它提供了两个功能:

  • 使用参数、种类和组来进行节点配置
  • 使用实时报告和变更追踪来监控节点状态

和其他开源项目的新特性一样,用户社区会提供反馈,随着项目的发展,用户要求 Puppet 提供频繁变化的仪表盘功能,它弥补了 Puppet 特性集中的不足,提供了基础设施的可视化和概要信息,这些信息对管理该设施的系统管理团队是很必要的。

查看英文原文:Puppet: Ruby-based Server Management Automation Suite

Ruby技术管理Linux架构DevOps语言 & 开发