首页>参考读物>计算机科学与技术>综合

Puppet实战
作者 : 刘宇 著
丛书名 : 实战
出版日期 : 2013-12-19
ISBN : 978-7-111-44518-0
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 374
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

Puppet领域的经典之作,资深运维专家多年一线经验结晶,51CTO技术社区强烈推荐,新浪研发中心平台架构部高级总监童剑、资深运维专家田逸、中国最大开源社区ChinaUnix创始人之一南非蜘蛛、OpenStack基金会董事程辉等业界资深专家联袂推荐。本书详细讲解了Puppet的功能和使用方法,深入剖析了Puppet的工作原理,系统总结了Puppet的使用技巧,包含大量来自一线的实战案例和最佳实践。
全书一共20章,共分为四部分:准备篇(1-4)介绍了用途、组织结构、工作原理、核心配置文件、各种平台下的安装与配置,以及它的运行环境,是使用Puppet前必须做好的准备工作;基础篇(5-10)详细讲解了Puppet的理论知识和功能使用,Puppet的语法与命令、资源、模块、类、模板、节点管理,以及Facter、数组、函数、变量和标签;实战篇(11-13)包含几个经典案例,包括大规模Nginx集群的部署方案、分布式监控系统部署方案、OpenStack快速部署方案等,使读者能快速将Puppet运用到实践中;进阶篇(14-20)综合讲解了Puppet的扩展模式、版本控制、报告系统、控制台、扩展工具及MCollective,让读者了解一个完整的Puppet生产流程。

图书特色

资深运维专家撰写,InfoQ和51CTO等技术社区,以及童剑、田逸、南非蜘蛛、程辉等业界资深专家联袂推荐
详细讲解Puppet的功能和使用方法,深入剖析Puppet的工作原理,系统总结Puppet的使用技巧,包含大量来自一线的实战案例和最佳实践

Puppet实战
刘宇 著

如果你想高效地管理数百台以上的服务器,一定少不了一款集群配置管理软件,而Puppet就是为了集群配置管理这个目标而生的。通过这本书,你可以由浅入深地展开学习,了解Puppet可以帮你做什么,学习Puppet强大的功能和命令。通过书中的实战演练,你可以更加具体地学习到如何把一个原本耗时费力的工作,通过Puppet高效而又优化地完成。相信等你亲自实践的时候,你会发现使用Puppet是一个很享受的过程,你一定会喜欢上它,也会喜欢这本书。
—— 童剑 新浪研发中心平台架构部高级总监
认识刘宇兄弟已经很多年了,尽管他当初来我就职的公司面试时经验有限,但仍然表现出一往无前的勇气和信心。在我看来,对于没有背景、没有资源的他来说,能取得今天的成绩,唯一凭借的就是持续的努力。这本书是刘宇兄弟几年来努力的成果之一,是他在新浪一线负责运维工作的经验结晶,实践性强,很有价值!
—— 田逸(sery@163.com) 资深运维专家/《互联网运营智慧》作者
如今的运维管理已经步入了成熟阶段,已不再是早期无章法的野蛮运维了,开源社区的繁荣及贡献,可以让广大运维人员免费使用各种优秀的工具软件,“喝着咖啡,点两下按钮就搞定一个站点”的想法已经不再遥远。配置管理的概念是这几年才有的,一个好的运维工具,可以让我们事半功倍。Puppet作为这个领域的佼佼者,已经拥有了大批的粉丝,但是Puppet中文资料比较少,业内同行之间的交流也比较少。这本书比较细致地讲解了Puppet的原理和操作细节,值得每个运维工程师拥有。
—— 窦 (@南非蜘蛛) 开源爱好者,中国最大开源社区ChinaUnix创始人之一
OpenStack是最成功的开源云计算项目,由数十个核心和孵化的项目组成,作为一个创新平台,孵化的项目也越来越多,为此给系统整合、部署、运维自动化等带来了很大挑战。Puppet作为优秀的配置管理工具,极大地简化了OpenStack的部署和配置。本书非常详尽地讲解了Puppet及其在OpenStack中的应用,值得一读!
—— 程辉 UnitedStack创始人兼CEO/OpenStack基金会董事/OpenStack中国社区负责人

前:
开源的配置管理工具非常多,Puppet是其中最优秀的一款,功能强大,使用简单,几乎支持所有的操作系统平台。国内外绝大多数大型互联网公司都在使用它,包括Google、Citrix、Redhat、Oracle、阿里巴巴、新浪等。本书作者是国内Puppet领域的先驱者之一,技术扎实,经验丰富,撰写了大量关于Puppet的技术文章,为国内的运维工作者做了较大的贡献。他把自己在新浪的运维工作经验总结成了这本书,书中非常系统地讲解了Puppet的各个方面,从功能到使用,从原理到技巧,几乎所有关于Puppet的问题都能从本书中获得答案或启发,值得广大从事运维工作的朋友认真阅读并收藏!
—— 51CTO 国内领先的IT技术社区
(www.51cto.com)
作者简介:
刘 宇 资深运维工程师和系统工程师,曾任职于新浪,担任高级技术工程师,现就职于百度,负责系统运维相关的工作,是国内Puppet领域的先驱之一。精通分布式自动化管理平台和分布式监控平台的管理,对视频点播、直播架构、文件加速、调度系统和数据分析都有非常深入的研究,实践经验极为丰富。在国内率先使用Puppet进行大规模集群管理,并撰写了Puppet配置手册在网络上分享。http://linuxtone.org 联合创始人,活跃于InfoQ和51CTO等技术社区,曾被评为InfoQ金牌讲师和51CTO博客之星。

后:
运维的最高境界是让老板忘记自己的存在,正如同医者的最高境界是让患者不用再去医院。一个系统的健康状态经常会受到变更的侵害,比如坏掉的硬盘、软件更新当中的bug、人为操作当中的失误,等等,因此所有一流的运维工程师都在致力于三件事:
● 避免单点
● 周全的监控,尤其是对系统核心健康指标的监控
● 设置合理的自动化流程以规避人为因素造成的风险
运维自动化运动最早兴起于大型互联网企业,因为他们需要用极少的人力来管理上万台服务器,因此自动化是唯一可行的途径。早期的自动化工具主要致力于实现无人值守安装操作系统的任务,而随着基础架构技术的发展和用户对快速部署、快速交付等方面的需求与日俱增,运维自动化的范畴逐渐扩展至升级、维护,乃至于环境管理、持续集成、测试等方面。这些年经常被人提及的DevOps理念以及最近比较新潮的ETA(Environment、Tools、Automation)团队建设问题,正是在这样的背景下被提出的。
早期的自动化完全通过脚本来完成。如果你能写一手漂亮的shell,懂一些perl/python以及正则表达式等,也算得上是很有一定水准的运维工程师了。然后,有一些编程能力更强的运维工程师,以及被部署系统折腾烦了的开发人员,纷纷开始将这套经验固化成了工具。Puppet诞生于2005年,其开发者Luke Kanies就是一位被部署系统折腾烦了的开发者,但他同时具有开发和系统管理从业经历的优势。
最初知道刘宇在研究Puppet还是在2011年,因为他一直是一位非常活跃的博主,写过很多笔记和博客。当时在国内谈及DevOps的人还不多,研究过Puppet的人更加少。在这样缺乏中文交流环境的情况下,刘宇通过阅读英文资料和跟英文社区的人交流,在新浪CDN上构建了一套基于Git和Puppet的自动化配置管理系统。
再后来,听说他要写一本关于Puppet的书,计划一年写完,2013年夏季出。结果这一写就是一段漫长的时光。期间时不时问他撰写的进度如何,往往不外乎是“在修改”,“再补充点内容”,然后就是“因为Puppet发布了3.0版,需要做大量内容修改,版本功能说明等”。就这样反复折腾了一年半的时间,《Puppet实战》终于得以问世。
Puppet是一个值得去了解和学习的自动化运维工具;刘宇是一位认真负责的作者,基于以上两点原因,《Puppet实战》值得你去读。
—— InfoQ中文站
(http://www.infoq.com/cn/)

图书前言

为什么要写这本书
  子曰:“工欲善其事,必先利其器。”作为系统管理员,最应该具备的一种技能就是利用各种优秀开源软件快速完成自己的工作,让自己变得更轻松。但并不是所有的软件都适合你,你需要根据自己的环境及需求进行选择。
  Puppet就是系统管理员的一把利器。几年前我开始学习Puppet的时候,不少朋友都问我:为什么选择Puppet?它有什么优势?当时pssh、CFEngine等都已经很成熟,并且也能帮助系统管理员有效地解决繁重的工作。为什么还要选择Puppet?“需求决定产品”。Luke Kanies(Puppet作者,以下简称Luke)曾经全面参与了重写CFEngine的解析器和开发ISConf3的工作,但是他还是觉得现有的工具已经无法满足他的工作需求,需要自己创造一个全新的工具,才能彻底使他的工作更加高效、便捷。 这便是Puppet诞生的背景和原因。
  Puppet注重设计简洁、先框架后应用两个中心思想。这也造就了Puppet今日的成功,它的“三板斧”——资源、类、模板,可以轻松地帮我们完成复杂的业务逻辑关系管理。同时,Puppet并不具备执行功能,因此在某些程度上存在短板,(比如exec是为解决特定系统管理员蹩脚的执行命令需求而开发的,但Luke一再强调不建议使用。)
  或许更多的系统管理员抱怨Puppet没有命令执行功能。Luke早就考虑到了这一点,并提前收购了MCollective,采用消息型总线的中间件来实现命令执行、系统管理、Puppet客户端管理等,以弥补了Puppet在这方面的不足,可见Puppetlabs非常有远见。伴随着Puppet各子功能及扩展工具的遍地开花,Puppet的商业化及各种开源社区的支持,Puppet可谓是蒸蒸日上。
  在新兴的同类工具中,我的另一个关注点是SaltStack,它天生具备命令执行和配置管理两大核心功能,相比Puppet来说有一定优势,但SaltStack的成长还需要我们耐心等待。Puppet打败1993年“出生”的老牌系统配置管理工具CFEngine就花费了近7年时间。而Puppet与Salt Stack真正鹿死谁手,我们拭目以待。相信以后的市场竞争会越来越激烈。
  为了让更多的系统管理员了解并深入学习Puppet,可以利用Puppet的集成方案解决系统管理复杂而繁重的任务,而不是盲目地寻找问题,我觉得有必要结合自己在学习Puppet过程中走过的弯路将工作中的经验和总结以实战形式呈现给大家。我也希望更多的人能加入开源社区,拥抱开源,拥抱变化,通过学习Puppet,体会到与开源爱好者交流的乐趣,而不是为了工具选型而犹豫甚至争斗。这也是我写作本书的初衷。
  本书技术深入而阅读简单,涉及系统管理员所需的很多方面的基础知识,同时通过穿插各种实例及代码详解以便使读者能够快速掌握Puppet,并迅速将其运用到工作环境当中。通过这样一本以系统管理员为核心的书,希望能给读者带来的不只是技术能力提升,更多的是开源与奉献精神。也希望更多的系统管理员通过多阅读、多交流,建立起享受分享的技术氛围。
读者对象
  根据本书内容定位,适合阅读本书的读者有:
  Puppet用户和爱好者
  UNIX与Linux系统管理员
  运维工程师
如何阅读本书
  本书分为四大部分:
  第一部分为准备篇(第1~4章),简单地介绍了Puppet的发展历程和相关理论,帮助读者了解一些基础背景知识,并快速搭建测试环境。
  第二部分为基础篇(第5~10章),着重讲解Puppet的基础理论知识,包括语法、资源、类、模板、模块、节点、Facter、数组、函数、变量。结合不同实例让读者感觉理论知识不再那么枯燥。
  第三部分为实战篇(第11~13章),从实战角度进行讲解,结合流行监控系统Nagios和Zabbix,包括最为热门的云计算OpenStack的部署,使读者能快速掌握Puppet并运用到实践中。
  第四部分为进阶篇(第14~20章),通过对Puppet扩展模式、版本控制、报告系统、控制台、扩展工具及MCollective的综合讲解,让读者了解一个完整的Puppet生产流程。
  其中第三部分以实战来讲解Puppet应用,相比于前两部分更加复杂。如果你是一名经验丰富的资深用户,能够理解Puppet的相关基础知识和工作原理,那么你可以直接阅读这部分内容。但是如果你是一名初学者,请一定从第1章的基础理论知识开始学习。
勘误和支持
  由于作者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,我特意在博客(http://liuyu.github.io)的基础上开辟了在线支持与应急方案的站点http://puppet.bubbyroom.com。你可以将书中的错误以及遇到的有关Puppet的任何问题,通过访问该站点的Q&A页面提交给我。书中的全部源文件除可以从华章网站①下载外,还可以从这个站点下载。同时我也会将相应的功能更新在这个站点上及时发布出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱liuyu105#gmail.com(sed 's/#/@/g'),标题请注明《Puppet实战》,期待能够得到你们的真挚反馈。同样你也可以关注我为本书建立的微信公共平台(puppetchina),我会在此公共平台定期发布Puppet相关信息。
致谢
  首先要感谢伟大的Puppet作者Luke Kanies,他开发了一款影响我整个人生的软件。
  特别感谢刘长元、王广胜、吴问志、刘继伟、王哲,感谢你们对本书提出的宝贵修改意见。
  感谢为本书撰写的童剑先生、窦哲先生、田逸先生、程辉先生,感谢你们在繁忙的工作中抽出时间,阅读了本书的样稿并写下推荐和评论。
  感谢机械工业出版社华章分社的编辑杨福川,是你的引导才促使我完成这本书。特别感谢姜影编辑,在这一年多的时间中始终帮我校对并支持我的写作,你的鼓励和帮助引导我顺利完成全部书稿。
  最后感谢我的笨笨,一如既往地支持我写作,给予我无尽的支持与灵感,并时时刻刻为我灌输着信心和力量!
  谨以此书献给我即将出生的Baby,以及众多热爱Puppet的朋友们!

刘宇(守住每一天)
于中国北京

上架指导

计算机\网络

封底文字

如果你想高效地管理数百台以上的服务器,一定少不了一款集群配置管理软件,而Puppet 就是为了集群配置管理这个目标而生的。通过这本书,你可以由浅到深地展开学习,了解 Puppet 可以帮你做什么,学习 Puppet 强大的功能和命令。通过书中的实战演练,你可以更加具体地学习到如何把一个原本耗时费力的工作,通过 Puppet 高效而又优化地完成。相信等你亲自实践的时候,你会发现用 Puppet 是一个很享受的过程,你一定会喜欢上它,也会喜欢这本书。
——童剑 新浪研发中心平台架构部高级总监
认识刘宇兄弟已经很多年了,当初他来我就职的公司面试时尽管经验有限,但仍然表现出一往无前的勇气和信心。在我看来,对于没有背景、没有资源的他来说,能取得今天的成绩,唯一凭借的就是持续的努力。这本书是刘宇兄弟几年来努力的成果之一,是他在新浪一线负责运维工作的经验结晶,实践性强,很有价值!
——田逸(sery@163.com) 资深运维专家/《互联网运营智慧》作者
如今的运维管理已经步入了成熟阶段,已不再是早期无章法的野蛮运维了,开源社区的繁荣及贡献,可以让广大运维人员免费使用上各种优秀的工具软件,“喝着咖啡,点两下按钮就搞定一个站点”的想法已经不再遥远。配置管理的概念是这几年才有的,一个好的运维工具,可以让我们事半功倍,Puppet作为这个领域的佼佼者,已经拥有了大批的粉丝,但是Puppet中文资料比较少,业内同行之间的交流也比较少,这本书比较细致的讲解了Puppet的原理和操作细节,值得每个运维工程师拥有。
——窦喆(@南非蜘蛛) 开源爱好者,中国最大开源社区ChinaUnix创始人之一
OpenStack是最成功的开源云计算项目,由数十个核心和孵化的项目组成,作为一个创新平台,孵化的项目也越来越多,为此给系统整合、部署、运维自动化等带来了很大挑战。Puppet作为优秀的配置管理工具,极大地简化了OpenStack的部署和配置。本书非常详尽地讲解了Puppet及其在OpenStack中的用应用,值得一读!
——程辉 UnitedStack创始人兼CEO/OpenStack基金会董事/OpenStack中国社区负责人

作者简介

刘宇 著:暂无简介

图书目录

前  言
第一部分 准备篇
第1章 认识Puppet 2
1.1 Puppet的起源与发展现状 2
1.1.1 什么是Puppet 2
1.1.2 Puppet起源与发展 2
1.1.3 版本语言特征 3
1.1.4 命令差异 4
1.1.5 Puppet 3.0新特性 4
1.2 为什么要使用Puppet 5
1.2.1 都有谁在使用Puppet 5
1.2.2 常见集中化管理工具对比 5
1.2.3 推荐Puppet的理由 6
1.3 Puppet的作用和特色 6
1.3.1 为什么要有自己的语言 6
1.3.2 为什么是Ruby 6
1.3.3 管理任何机器 6
1.4 Puppet组织结构 7
1.5 Puppet工作原理 7
1.5.1 Puppet基本结构 7
1.5.2 Puppet是如何工作的 8
1.5.3 Puppet数据流 8
1.5.4 文件结合 9
1.5.5 详细交互过程 9
1.5.6 安全与认证 10
1.6 Puppet核心配置文件详解 11
1.6.1 主配置文件puppet.conf 11
1.6.2 主机配置文件site.pp 13
1.6.3 认证与安全配置文件 14
1.6.4 客户端自动认证配置 16
1.6.5 报告系统配置 16
1.6.6 文件系统配置文件 16
1.7 本章小结 17
第2章 Puppet安装与配置 18
2.1 Puppet对各系统平台的支持 18
2.2 Puppet对Ruby的支持 19
2.3 Puppet的安装步骤 19
2.4 在Linux下安装 20
2.4.1 包管理器方式安装 21
2.4.2 从源代码进行安装 23
2.4.3 从Git版本库进行安装 24
2.4.4 通过Gems进行安装 25
2.5 在Mac OS X下安装 25
2.5.1 通过二进制发布包进行安装 25
2.5.2 从Git版本库进行安装 26
2.5.3 从Ports仓库进行安装 27
2.6 配置Puppet 28
2.7 在Windows下安装与使用 30
2.7.1 包管理器方式安装 31
2.7.2 在Windows下使用Puppet 33
2.7.3 Puppet在Windows下的功能 35
2.8 如何升级 35
2.9 本章小结 36
第3章 创建你的第一个Puppet配置 37
3.1 配置一个测试节点 37
3.2 检测你的配置文件 38
3.3 客户端运行配置 39
3.4 查看运行结果 40
3.5 增加httpd模块 40
3.6 本章小结 42
第4章 Puppet运行环境 43
4.1 服务器端配置 43
4.2 客户端配置 44
4.3 如何运用环境配置 45
4.4 本章小结 48
第二部分 基础篇
第5章 Puppet语法与命令详解 50
5.1 Puppet的命名规范 51
5.1.1 资源 51
5.1.2 属性 51
5.1.3 类 52
5.1.4 模块 52
5.1.5 节点 52
5.2 主机、模块和类的命名 53
5.2.1 主机的命名 53
5.2.2 模块的命名 54
5.2.3 类的命名 54
5.3 资源、变量、参数和标签的命名 54
5.3.1 资源的命名 54
5.3.2 变量的命名 55
5.3.3 参数的命名 55
5.3.4 标签的命名 55
5.4 Puppet语法风格 55
5.4.1 间距、缩进和空白字符 56
5.4.2 注释 56
5.4.3 变量的引用 56
5.4.4 资源 57
5.4.5 条件语句 60
5.4.6 类 61
5.5 检查命令的用法 64
5.5.1 语法检查 64
5.5.2 代码调试 65
5.6 Puppet命令详解 66
5.6.1 Puppet常用命令 68
5.6.2 帮助命令详解 73
5.6.3 模块和不常用命令 75
5.7 本章小结 76
第6章 Puppet资源详解 77
6.1 什么是资源 78
6.1.1 图解核心资源 81
6.1.2 什么是manifests 81
6.1.3 资源的依赖 82
6.2 虚拟资源  85
6.2.1 虚拟资源的定义 85
6.2.2 虚拟资源的用法 86
6.3 常用资源的用法 87
6.3.1 用户资源 88
6.3.2 用户组资源 90
6.3.3 软件安装 91
6.3.4 文件管理 94
6.3.5 服务管理 97
6.3.6 定时脚本 99
6.3.7 执行命令 101
6.3.8 调试与输出 103
6.4 Puppet作用域与变量 104
6.4.1 作用域 104
6.4.2 变量 108
6.5 条件语句 110
6.5.1 if语句 110
6.5.2 case语句 112
6.5.3 selector选择器 112
6.6 表达式 113
6.6.1 什么是表达式 113
6.6.2 运用位置 114
6.6.3 操作顺序 114
6.6.4 比较运算符 114
6.6.5 布尔运算符 115
6.6.6 算术运算符 116
6.7 函数 116
6.8 数据类型 118
6.8.1 布尔类型 118
6.8.2 未定义 119
6.8.3 字符串 119
6.8.4 资源引用 120
6.8.5 数字 120
6.8.6 哈希类型 121
6.8.7 正则表达式 121
6.8.8 数组 122
6.9 标签 123
6.10 stage运行阶段 123
6.11 本章小结 124
第7章 Puppet模块、类、模板 125
7.1 图解模块结构 125
7.2 模块管理 126
7.2.1 实例:创建一个模块 127
7.2.2 模块布局 129
7.3 类管理 130
7.3.1 类的定义 131
7.3.2 类的继承 131
7.3.3 参数化类 132
7.4 模板管理 135
7.4.1 定义与声明 135
7.4.2 ERB模板语法 136
7.5 融合 139
7.6 从Puppet Forge获取模块 141
7.7 从Example42获取模块 142
7.8 本章小结 143
第8章 节点管理 144
8.1 什么是节点 144
8.2 主机名命名规范 145
8.3 节点继承 146
8.3.1 节点继承关系 146
8.3.2 继承变量覆盖 147
8.3.3 默认类与默认节点 147
8.3.4 节点继承的判断 148
8.4 节点管理方法 149
8.4.1 每个主机名独立 149
8.4.2 采用正则匹配 150
8.4.3 使用外部节点分类器 150
8.4.4 利用WEB-UI管理 153
8.5 如何选择合适的管理方式 154
8.6 本章小结 154
第9章 认识Facter 155
9.1 什么是Facter 155
9.2 Facter的作用与特点 156
9.3 Facter的常用变量 157
9.3.1 操作系统名 158
9.3.2 操作系统相关 159
9.3.3 主机名 159
9.3.4 IP地址 160
9.3.5 内存管理 160
9.3.6 系统状态信息 161
9.3.7 版本管理 161
9.4 如何自定义fact 162
9.5 案例一:条件语句 164
9.6 案例二:匹配不同硬件配置 165
9.7 本章小结 167
第10章 小标签大用途 168
10.1 Puppet标签的定义 168
10.2 Puppet标签的说明 168
10.2.1 自动分配标签 169
10.2.2 tag元参数 169
10.2.3 tag函数 170
10.2.4 tagged函数 171
10.2.5 识别标签 171
10.3 指定标签运行特定配置 172
10.3.1 在命令行中指定特定标签 172
10.3.2 在配置文件中指定 174
10.3.3 在Node节点配置中指定 174
10.4 标签的更多用法 175
10.4.1 在收集资源中使用 175
10.4.2 实例化资源 175
10.4.3 创建资源集合 176
10.5 本章小结 176
第三部分 实战篇
第11章 大规模Nginx集群部署方案 178
11.1 应用场景 178
11.2 场景需求分析 178
11.2.1 日常变更分析 178
11.2.2 网络及架构分析 179
11.2.3 软件安装分析 180
11.2.4 软件配置分析 180
11.2.5 节点管理分析 181
11.3 合理规划 181
11.3.1 系统安装 181
11.3.2 系统初始化 182
11.3.3 部署规划 182
11.3.4 关注点 183
11.4 实施步骤 183
11.4.1 前期准备:创建软件仓库 183
11.4.2 Puppet配置文件管理 185
11.4.3 初始化操作系统 187
11.4.4 编写nginx模块 187
11.4.5 采用Forge的nginx模块 192
11.5 本章小结 194
第12章 分布式监控系统部署方案 195
12.1 利用Puppet部署Zabbix 196
12.1.1 Zabbix简介 196
12.1.2 Zabbix架构 197
12.1.3 利用Puppet部署Zabbix 198
12.1.4 Zabbix自定义监控 201
12.2 利用Puppet部署Nagios 202
12.2.1 Nagios简介 202
12.2.2 Nagios架构 203
12.2.3 Nagios服务端安装 204
12.2.4 Nagios模块应用 206
12.2.5 创建Nagios客户端监控 208
12.3 本章小结 210
第13章 OpenStack快速部署方案 211
13.1 OpenStack简介 211
13.1.1 什么是OpenStack 211
13.1.2 OpenStack的组件、服务及逻辑架构 212
13.1.3 OpenStack版本说明 213
13.2 部署OpenStack 214
13.2.1 环境准备 214
13.2.2 安装软件及Puppet模块 216
13.2.3 部署controller 218
13.2.4 部署compute 220
13.2.5 验证OpenStack部署 221
13.3 本章小结 222
第四部分 进阶篇
第14章 Puppet版本控制 224
14.1 Puppet版本控制方法 224
14.1.1 为什么要使用版本控制 224
14.1.2 版本控制的架构与原理 225
14.1.3 Git与SVN的区别 226
14.1.4 为什么采用Git 226
14.2 使用Git实现Puppet 226
14.2.1 安装与配置Git 227
14.2.2 将Puppet加入Git 228
14.2.3 使用Rake自动更新副本 229
14.2.4 使用hook实现自动语法检查 231
14.3 本章小结 232
第15章 Puppet架构扩展与分布式 233
15.1 Puppet瓶颈分析 233
15.1.1 单台Puppet Master瓶颈 233
15.1.2 认证的瓶颈 234
15.1.3 文件的瓶颈 234
15.1.4 网路的瓶颈 234
15.2 架构扩展之单台Puppet Master 234
15.2.1 Nginx+Mongrel模式 235
15.2.2 Apache+Passenger模式 238
15.2.3 Nginx+Passenger模式 242
15.3 架构扩展之多台Puppet Master 244
15.3.1 配置前的准备 248
15.3.2 Puppet CA认证服务器部署 250
15.3.3 Puppet LB负载均衡器部署 251
15.3.4 Puppet Master服务器部署 252
15.3.5 Puppet客户端配置 254
15.3.6 验证架构 254
15.4 架构扩展之利用Git构建分布式的Puppet 254
15.4.1 实现原理 255
15.4.2 安装与部署 256
15.5 本章小结 259
第16章 File资源管理优化 260
16.1 深入理解File资源  260
16.2 操作实践 262
16.3 File资源配置方法  269
16.3.1 模块文件目录配置 269
16.3.2 统一文件目录配置 270
16.3.3 content属性 271
16.4 File资源的优化 271
16.4.1 配置Nginx代理 272
16.4.2 选择File资源还是ERB 272
16.4.3 大文件下发方法 272
16.5 从filebucket检索文件 272
16.6 备份与恢复文件 275
16.7 File资源的缺点 276
16.8 本章小结 276
第17章 强大的报告系统 277
17.1 report介绍 277
17.2 Puppet信息记录方式 278
17.3 tagmail发送邮件报告 279
17.4 rrdgraph图形化报告 280
17.5 自定义报告处理器 282
17.6 本章小结 284
第18章 必须了解的控制台 285
18.1 Puppet DashBoard 285
18.1.1 简介 285
18.1.2 DashBoard安装 285
18.1.3 配置DashBoard 287
18.1.4 集成DashBoard 292
18.2 Foreman 297
18.2.1 Foreman简介 297
18.2.2 安装Foreman 298
18.2.3 配置Foreman 303
18.2.4 使用Foreman管理Puppet 311
18.2.5 从Foreman显示报告 313
18.2.6 Foreman其他功能 314
18.3 本章小结 314
第19章 Puppet扩展工具 315
19.1 生成HTML文档 315
19.1.1 利用puppet doc生成HTML 316
19.1.2 puppet doc的其他使用方法 318
19.2 生成依赖关系图 319
19.2.1 什么是关系图 319
19.2.2 配置方法 319
19.2.3 关系图说明  322
19.3 PuppetDB 322
19.3.1 PuppetDB功能与特性 322
19.3.2 安装PuppetDB 324
19.3.3 PuppetDB配置文件详解 326
19.3.4 配置与使用PuppetDB 329
19.3.5 PuppetDB瓶颈 332
19.4 Hiera 335
19.4.1 Hiera的特点 335
19.4.2 Hiera的使用 335
19.5 本章小结 335
第20章 MCollective结合 336
20.1 MCollective简介 336
20.1.1 什么是MCollective 336
20.1.2 MCollective角色互换 337
20.1.3 MCollective的特点 338
20.1.4 MCollective给Puppet带来的改变 338
20.2 消息中间件 339
20.2.1 Stomp 339
20.2.2 ActiveMQ 339
20.2.3 RabbitMQ 339
20.3 标准化部署MCollective 340
20.3.1 体系结构与配置 340
20.3.2 安全模型 340
20.3.3 未来扩展 341
20.4 部署MCollective步骤 341
20.4.1 创建和收集证书 342
20.4.2 部署和配置中间件 344
20.4.3 MCollective安装与配置 348
20.5 如何使用MCollective 355
20.5.1 mco基本命令的用法 355
20.5.2 执行RPC请求 356
20.5.3 过滤器的使用 358
20.6 MCollective使用 Shell Commands 359
20.7 MCollective控制Puppet 360
20.8 本章小结 362

教学资源推荐
作者: 徐明星 编著
作者: 中国计算机学会 主编
作者: 宋宜斌、邱秀芹、潘庆先、刘霄 编著
参考读物推荐
作者: 戴时颖 周莉 刘绍婕 等编著
作者: (美)Jason Falls,Erik Deckers 著
作者: [美] 托马斯 W.米勒(Thomas W. Miller)著