Puppet配置管理工具概念及其工作原理

日期: 2009-07-16 作者:Andrew Shafer翻译:王霆 来源:TechTarget中国 英文

Puppet是一种开源的IT自动化工具,利用它IT组织可以对配置服务进行编码,从而形成一种管理规则,随后系统框架会对其进行审查并强制实施。   起初,系统管理人员可能会认为这种新型的配置管理工具完全没有必要。因为他可以用机器镜像文件和shell脚本来实现这一切。这就像是一个只听说过伐木机的伐木工人不明白为什么之前每个人都要带好几把斧子一样。

  Puppet于2005年首次对外发布,自那以后便一发不可收拾。如今Google、Twitter、Sun、Sony、Red Hat、NewYork Stock Exchange(纽约证券交易所)、Digg、SlideShare、Shopzilla、哈佛大……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

Puppet是一种开源的IT自动化工具,利用它IT组织可以对配置服务进行编码,从而形成一种管理规则,随后系统框架会对其进行审查并强制实施。

  起初,系统管理人员可能会认为这种新型的配置管理工具完全没有必要。因为他可以用机器镜像文件和shell脚本来实现这一切。这就像是一个只听说过伐木机的伐木工人不明白为什么之前每个人都要带好几把斧子一样。

  Puppet于2005年首次对外发布,自那以后便一发不可收拾。如今Google、Twitter、Sun、Sony、Red Hat、NewYork Stock Exchange(纽约证券交易所)、Digg、SlideShare、Shopzilla、哈佛大学和斯坦福大学都在使用Puppet管理自己的系统,他们从企业的IT业务到Web 2.0服务器的启动都使用该工具来完成。这些组织已经意识到SSH协议并不是一个可靠的解决方案。

  Puppet配置管理工具的工作原理

  Puppet由语言层、客户服务器进程及资源提取等多个层面组成。

  语言层允许管理人员通过提取用户、群组、程序包、文件、cron、负载及服务等资源对服务器配置进行描述,并对其中一些资源进行命名。

  此外,管理人员还可以指定各种资源间的关系。例如,服务类型要取决于配置文件类型、而配置文件又取决于所安装的程序包。利用这些关系Puppet可以在独立服务配置发生变更时对其进行重启。

  资源还可以被整合到逻辑集合中。这里还可以使用之前提到的那个例子,将程序包、配置文件和服务集合到一起。然后就可以对该资源组重新进行利用,在其它Puppet规则下也可以将其视为是一个单一的逻辑实体。客户服务器层面提供了一种安全机制,使用户可以利用HTTP SSL编码将具体的配置从中央主机转移到单独的主机,与网银和电子商务安全SSL一样。每台主机只接收并利用其特定的配置编码。

  通过对配置当前状态进行审核、与业务需求进行对比并对资源进行合理分配,用户可以对配置进行审核和利用。所应用的配置将在相应的服务器上安装操作系统。通过更新核心规则,我们可以实现对配置的更新和补丁的应用。制定规则内的系统审核和同步周期将被用来在整个生命周期内对系统进行管理。
  
  利用审查和同步周期可以确保整个网络的连贯性。如果使用传统的技术和工具,两台机器提供同样配置服务的概率就已经很低了。随着服务器数量的增长,由于配置转移而导致的网络不连贯会引发许多问题。

  架构即编码

  虚拟化技术对于现代数据中心的影响是不可否认的。接下来便是APIs所导致的存储、网络及计算资源的转移。尽管说虚拟化允许大量的服务隔离和硬件利用,但每台虚拟机所需的配置是和物理机一样的。利用10台或10台以上运行在同一硬件或同一虚拟机集群里的虚拟机来提供Web服务,IT组织就可以降低在硬件方面的开支,但是,需要管理的配置数量也会越来越多。

  基于镜像文件的配置管理似乎可以解决这个问题。但问题是基于镜像文件的方法起初效果就不明显,而经过几个月的镜像文件管理,有人意识到他只是在用无计划的机器镜像文件收集来取代配置转移,几乎根本没有了解二者的真实含义。

  通过Puppet这样的配置管理工具,API的概念被拓展到了整个系统的配置。加密服务不仅可以提供一个系统搭建与维护的安全机制,这些密码还可以提供大约500M的服务器镜像文件。这些密码不仅可以洞察到系统中有哪些配置设备,还可以找到配置这些设备的真实意图。现在你应该明白我们在管理现有系统和设计新服务时为什么要提高决策的质量了。

  进程即技术

  对于大多数组织而言,业务和配置变更是导致资源浪费的最主要原因。大多数IT部门都会采用大量的变更管理进程来进行自我保护,但是企业的确需要业务变更,因为这可以推动企业的发展。对于系统变更的业务需求和IT组织对于延缓变更速度的尝试经常会使业务需求与自己IT部门的供给无法保持一致。

  使用Puppet,架构即是代码,这意味着他们必须引入软件研发工具系统和进程。在软件研发过程中,对于其版本的控制和管理是不可避免的,这在系统管理中也是一项非常重要的工作。版本控制使软件研发业务更为透明,为其它软件的研发打下基础。

  从版本控制开始,编码架构允许企业使用类似的服务器配置进行持续的软件整合及研发、测试和部署。特别是在使用虚拟化技术时,Puppet可以大大缩短系统变更的反馈时间。服务变更、新版本试用及新数据库的负载测试所有这些都可以被列入研发进程之中。当业务变更准备就绪之后,只要把新的代买合并到相应的规则中,就可以在产品服务器上对其进行实施。

  一旦Web服务器、应用服务器及数据库服务器配置被Puppet所控制,就没必要再加入一台新的服务器了。此时需要做的是预先设定分类规则。你是否需要为Web服务器安装补丁?只需改变对核心Web服务器的编码即可,其它的Puppet会帮你完成。你是否需要配置一台新的Web服务器并添加一台负载平衡器?Puppet可以帮你解决,并不需要增加服务器的容量,你之需要使用配置有相应规则的Puppet软件即可。

  这些提供变更管理进程的方法可以迅速提高系统的灵活性,与传统的慢速进程技术相比,风险也要更小。用Puppet来取代Shell脚本,你会更喜欢业务的变更,而不是绞尽脑汁使其放慢速度。

  Puppet是一款开源软件,由Reductive Labs研发并提供支持,他们的目标是推动系统变更管理软件的演变。Puppet目前可以在大多数Unix或Linux版本上运行,包括Red Hat(Fedora)、CentOS、Ubuntu、Debian、SUSE、Solaris、OSX、FreeBSD、HP-UX及AIX上运行。Puppet wiki上有关于Puppet语言和具体执行方法的信息。在IRC网站上,还有一个相关的用户社区,你可以通过邮件列表进入该社区。

  点击免费下载Puppet开源配置管理软件。

翻译

王霆
王霆

相关推荐