卷2:第18讲 Puppet part 1.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
卷2 :第18章 Puppet part 1 18.1. 概述 Puppet 是⼀个⽤ Ruby 写的开源 IT 管理⼯具,⽤于数据中⼼⾃动化和服务器的管理, ⽤户包括 Google , Twitter , 纽约证 交易所以及很多其他机构。Puppet 的主要维护者是 Puppet Labs ,也就是 Puppet 项⽬的发起者。Puppet 可以管理从 2 台到 5 万台机器,管 理员可以只有1个⼈或者是上百⼈。 Puppet 是⼀个⽤于配置和维护计算机的⼯具;通过使⽤ puppet 的简单的配置语⾔,你 可以告诉 Puppet ,你希望如何配置机器,然后 Puppet 就会按照你的指⽰来修改机器的 配置。之后,如果你改变了需求,⽐如更新了软件包,增加了新⽤户,或是更新了配 置,那么 Puppet 也会⾃动地随之更新你的机器。⽽如果这些机器本来就已经配置好 了,Puppet 就什么都不会动。 总的讲,Puppet 可以借助任何已有的系统特性来完成它的⼯作。⽐如,在 Red Hat 中,它会使⽤yum 来进⾏包管理,并修改 init.d 来管理系统服务;⽽在 OS X 中, Puppet 则使⽤ dmg 来管理软件包,使⽤ launchd 来管理系统服务。Puppet 的⼀个⽬ 标就是让你或者系统本⾝都可以通过 Puppet 代码来明⽩如何进⾏⼯作,所以,必须要 能够遵从各个系统的规范。 Puppet 集成了很多已有⼯具的传统。从开源社区的⾓度讲,对 Puppet 影响最⼤的莫过 于 F-Engine 和 ISconf 了, F-Engine 是第⼀个开源通⽤配置管理⼯具,⽽ ISconf 使 ⽤了 make 来完成所⽤⼯作,其灵感来源于显式地处理系统中所有的依赖关系。在商 业软件中,Puppet 受到了 BladeLogic 和 Opsware (两者都已经被⼤公司收购了)的影 响,在 Puppet 项⽬开始时,这两种⼯具都在市场中获得了不⼩的成功,不过两者都更 加关注于向⼤公司的管理层来推销,相反,对于直接为管理员提供⼀个强⼤的⼯具, 没有⾜够的重视。Puppet 希望和这些⼯具解决差不多的问题,但关注的⽤户有很⼤不 同。 这个简单的例⼦⽤于解释如何使⽤ Puppet ,例⼦中的这段代码⽤来确保系统中安装了 SSH 服务,并配置正确: class ssh { package { ssh: ensure = installed } file { /etc/ssh/sshd_config: source = puppet:///modules/ssh/sshd_config, ensure = present, re uire = Package[ssh] } service { sshd: ensure = running, re uire = [File[/etc/ssh/sshd_config], Package[ssh]] } } 这个配置确保软件包被安装,⽂件就位,并且服务运⾏。注意,我们指定了资源之间 的依赖关系,这样,我们就可以确保⼀定能够按照正确顺序⼯作。这个类 (class) 可以 被关联到任何⼀个需要这个配置的主机。Puppet 配置的基本组件是结构化的对象,在 这个例⼦⾥就是 package, file 和service。我们将这些对象称为资源 (resource) , Puppet 配置中的任何东西,最后都会分解为⼀些资源,以及资源间的依赖关系。 通常,⼀个使⽤ Puppet 的机构可能拥有数⼗甚⾄上百个这样的代码段,我们称之为类 (class) ,我们将存储这些类的⽂件称为货单 (manifest) ,这些被按照相关性分组,这 些组称为模块 (module) 。⽐如,你可能有个 ssh 模块,其中包含了这个 ssh 类和⼀ 些其他相关类,同时还会有诸如 mys l,apache, 以及 sudo 等模块。 ⼤部分的 Puppet 交互都通过命令⾏或是⼀直运⾏着的 HTTP 服务进⾏的,不过有些东 西也有图形界⾯,⽐如报告处理。Puppet Labs 还提供了⼀些 Puppet 的周边商业产 品,这些产品更倾向于使⽤基于 web 的图形化界⾯。 Puppet 的第⼀个原型写于2004年夏天,从2005年2⽉开始成为了⼀个有全职投⼊的项 ⽬。Puppet 最初由 Luke Kanies

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档