Puppet权威指南
《Puppet权威指南》
基本信息
作者: 王冬生
丛书名: Linux/Unix技术丛书
出版社:机械工业出版社
ISBN:9787111485988
上架时间:2014-12-25
出版日期:2015 年1月
开本:16开
版次:1-1
内容简介
计算机书籍
自动化运维领域的重磅之作,Puppet领域权威的、系统的、有深度的、极具企业实战价值的著作。腾讯高级运维工程师撰写,获得了来自腾讯、百度、阿里巴巴、新浪等多家世界级互联网企业的总监级运维专家的高度认可和联袂推荐。
工欲善其事,必先利其器,在操作层面,《Puppet权威指南》从Puppet的基本功能到高级功能,再到二次开发均有详细分析,内容详尽而系统,能帮助读者全面掌握Puppet的使用;知其然,更要知其所以然,在原理层面,本书从多个层面和角度分析了Puppet的工作原理,能让读者更深入理解和使用Puppet;好的经验是无价的,在应用层面,作者将自己几年来学习和应用Puppet积累的方法、技巧、最佳实践以及解决疑难问题的秘诀都毫无保留地奉献了出来,能让读者少走弯路,事半功倍;实践出真知,在实战层面,本书给出了几个对企业很重要的、常见的综合性案例,不仅能帮助读者提高实战能力,还能给予他们解决这些问题的良好解决方案。
目录
《Puppet权威指南》
序 一
序 二
前 言
第一部分 基 础 篇
第1章 运维工程师的利器——自动化运维工具 2
1.1 浅谈运维工程师 2
1.1.1 运维工程师定位和职责 2
1.1.2 优秀运维工程师vs普通运维工程师 3
1.1.3 自动化运维工具 5
1.2 自动化运维工具箱 5
1.2.1 Cfengine 5
1.2.2 Chef 7
1.2.3 Puppet 7
1.3 自动化运维工具对比 10
第2章 Puppet介绍 12
2.1 DevOps介绍 12
2.2 Puppet版本介绍 13
2.2.1 Puppet开源社区版本号介绍 13
2.2.2 Puppet版本混用可行性 14
2.2.3 如何升级Puppet 14
2.2.4 Puppet发行版本介绍 15
2.3 Puppet版本运行环境和硬件要求 16
2.3.1 Puppet版本运行环境 16
2.3.2 Puppet 硬件要求 17
2.4 Puppet 工作流程 17
2.5 Puppet开发工具 19
2.5.1 Geppetto 开发环境 19
2.5.2 Vim开发环境 23
2.6 Puppet问答 23
第3章 Puppet及相关工具的配置与安装 25
3.1 Puppet 各环境的安装 25
3.1.1 Ruby不同版本对Puppet的支持状况 25
3.1.2 包管理系统和源 26
3.1.3 在RedHat企业版或CentOS上安装Puppet 29
3.1.4 在Debian和Ubuntu上安装Puppet 29
3.1.5 在微软Windows系列操作系统上安装Puppet 30
3.1.6 在Mac上安装Puppet 30
3.1.7 通过RubyGems安装Puppet 33
3.1.8 源码编译Puppet 33
3.1.9 源码打包RPM 35
3.2 版本控制工具安装与配置 36
3.2.1 Subversion安装与配置 36
3.2.2 Git安装与配置 38
3.2.3 SVN与Git的4点区别 39
3.3 DNS安装与配置 40
第4章 Puppet目录结构、配置文件和命令详解 42
4.1 源码与主配置文件的目录结构 42
4.2 Puppet主要配置文件介绍 45
4.2.1 puppet.conf介绍 45
4.2.2 auth.conf介绍 49
4.2.3 namespaceauth.conf 介绍 51
4.2.4 autosign.conf介绍 52
4.2.5 fileserver.conf介绍 53
4.2.6 tagmail.conf 介绍 54
4.3 Puppet命令详解 54
4.3.1 Puppet命令的前世今生 55
4.3.2 如何掌握Puppet命令 55
4.3.3 puppet master 介绍 57
4.3.4 puppet agent 介绍 59
4.3.5 puppet cert 介绍 62
4.3.6 puppet apply 介绍 64
4.3.7 puppet module 介绍 65
4.3.8 puppet resource 介绍 67
4.3.9 puppet describe 介绍 68
4.3.10 puppet doc 介绍 69
4.3.11 puppet parser 介绍 71
4.3.12 puppet 帮助命令介绍 72
4.3.13 puppet filebucket 介绍 73
4.3.14 puppet file 介绍 74
4.3.15 puppet kick 介绍 74
第5章 通过Puppet 构建主机 77
5.1 Agent首次访问Master配置过程 77
5.1.1 创建site.pp文件和目录 77
5.1.2 Master配置 78
5.1.3 防火墙配置 79
5.1.4 Agent配置 80
5.2 manifests和modules目录介绍 82
5.2.1 manifests目录介绍 83
5.2.2 modules目录介绍 86
5.3 class类的介绍 88
5.3.1 定义无参数class类 88
5.3.2 定义有参数class类 89
5.4 继承 89
5.4.1 节点继承 89
5.4.2 类继承 90
5.5 Puppet构建主机 90
5.5.1 基础模块目录结构 91
5.5.2 代码文件介绍 92
5.5.3 site.pp加载配置文件 93
5.6 Puppet多环境部署 94
第二部分 进 阶 篇
第6章 Puppet语言详解 98
6.1 变量和变量作用域 98
6.1.1 什么是变量 99
6.1.2 变量作用域 100
6.1.3 Facter变量 103
6.1.4 内置变量 104
6.2 数据类型 104
6.2.1 字符串类型 104
6.2.2 数值类型 105
6.2.3 数组 106
6.2.4 哈希类型 107
6.2.5 布尔类型 108
6.2.6 正则表达式 108
6.2.7 undef 110
6.3 条件判断语句 111
6.3.1 if…elsif…else条件语句 111
6.3.2 case语句 112
6.3.3 selector语句 113
6.4 Puppet函数介绍 113
6.4.1 常用系统函数 114
6.4.2 其他系统函数 118
6.5 Puppet tag 119
6.6 Puppet关键字 119
6.7 Puppet编程规范 120
6.7.1 manifests和modules中的间距、缩进与空白 120
6.7.2 注释 121
6.7.3 变量规范 121
6.7.4 资源规范 122
6.7.5 条件语句规范 125
6.7.6 class类规范 126
6.7.7 标识符命名规范 128
6.8 Puppet文件的导入、命名空间与自动加载 128
6.8.1 Puppet文件的导入 128
6.8.2 Puppet命名空间与自动装载 129
第7章 Puppet 资源详解 132
7.1 Puppet资源 132
7.1.1 Puppet资源分类 133
7.1.2 资源与Puppet协同工作 133
7.1.3 资源的组成 133
7.2 Puppet常用资源介绍 134
7.2.1 file与filebucket资源 135
7.2.2 host资源 140
7.2.3 user资源 141
7.2.4 group资源 144
7.2.5 package资源 145
7.2.6 service资源 148
7.2.7 exec资源 150
7.2.8 cron资源 153
7.2.9 notify资源 154
7.3 资源公有属性 155
7.3.1 资源公有属性应用场景 156
7.3.2 before和require资源公有属性 157
7.3.3 notify和subscire资源公有属性 158
7.3.4 资源公有属性的其他描述方式 159
7.3.5 定义Chaining 160
7.3.6 stage资源公有属性与stage资源 162
7.3.7 audit审计 163
7.4 默认资源 163
7.5 Puppet虚拟资源 164
7.5.1 虚拟资源应用场景 164
7.5.2 虚拟资源 165
7.6 Puppet资源的导出 167
7.6.1 环境的配置 167
7.6.2 资源导出案例 168
7.6.3 过期资源清理 171
第8章 Puppet ERB模板详解 172
8.1 ERB模板应用场景 172
8.2 ERB语言 173
8.2.1 初识ERB模板 173
8.2.2 变量 174
8.2.3 if…elsif…else条件语句 175
8.2.4 each循环 177
8.2.5 函数 178
8.3 通过ERB模板配置Apache虚拟主机 179
第9章 走进Facter 182
9.1 Facter简介 182
9.1.1 Facter版本 183
9.1.2 Facter参数与应用 183
9.1.3 Facter与Puppet结合 185
9.2 Facter常用变量 185
9.2.1 CPU相关变量 186
9.2.2 内存与swap相关变量 186
9.2.3 网络接口与硬件地址相关变量 188
9.2.4 系统发行版本变量与kernel版本相关变量 189
9.2.5 SELinux相关变量 190
9.3 扩展Facter 191
9.3.1 扩展Facter的变量 191
9.3.2 External Facts外部扩展变量 193
9.4 编写与分发Facter的扩展 196
第三部分 高 级 篇
第10章 Puppet高级功能 200
10.1 ENC介绍 200
10.1.1 ENC的配置 201
10.1.2 ENC案例 203
10.2 Ruby DSL介绍 205
10.2.1 如何使用Ruby DSL 206
10.2.2 Ruby DSL案例 206
10.3 Puppet的关系图 208
10.3.1 DOT语言 209
10.3.2 Graphviz的安装 210
10.3.3 Puppet与Graphviz结合生成关系图 210
10.4 puppetlabs-stdlib详述 212
10.5 Puppet扩展 216
10.5.1 Puppet扩展的目录结构 216
10.5.2 Puppet函数扩展 217
10.5.3 Puppet类型与提供者 220
第11章 Puppet集群技术 224
11.1 Master单机瓶颈解决方案 224
11.2 Mongrel模式 227
11.3 Phusion Passenger 231
11.3.1 Apache + Passenger 231
11.3.2 Nginx + Passenger 234
11.4 Puppet集群介绍 236
11.4.1 为什么建立Puppet集群 236
11.4.2 建立Puppet集群的场景 236
11.4.3 集群负载均衡解决方案 237
11.5 Puppet CA均衡负载 239
第12章 报告系统 241
12.1 报告系统入门 241
12.2 报告处理器 243
12.3 自定义报告处理器 247
12.3.1 log处理器源码分析 247
12.3.2 自定义报告处理器 248
12.3.3 个性化处理器 250
第13章 Puppet Web GUI 251
13.1 Puppet Dashboard 安装与升级 252
13.2 配置Dashboard 255
13.3 Dashboard应用场景 259
13.4 Dashboard与Nginx提升性能 264
第14章 PuppetDB数据仓库 266
14.1 PuppetDB环境安装 266
14.1.1 PuppetDB辅助环境安装 267
14.1.2 PuppetDB环境安装与升级 268
14.2 PuppetDB与Puppet结合配置 270
14.2.1 数据库配置 270
14.2.2 PuppetDB配置 271
14.2.3 Puppet配置 275
14.3 PuppetDB API 277
14.3.1 PuppetDB API检索结构 277
14.3.2 PuppetDB API检索语句 278
14.4 PuppetDB 问答 285
第15章 Marionette Collective框架应用 287
15.1 MCollective介绍 288
15.2 中间件介绍 290
15.2.1 ActiveMQ介绍 291
15.2.2 RabbitMQ介绍 291
15.3 MCollective环境的安装与配置 291
15.3.1 MCollective安装 292
15.3.2 MCollective配置 294
15.4 如何使用MCollective 301
15.4.1 MCollective基础命令 301
15.4.2 MCollective插件应用 304
15.4.3 通过MCollective管理Puppet Agent 305
第四部分 应 用 篇
第16章 HAProxy构建Puppet集群实践 308
16.1 HAProxy 简介 308
16.2 HAProxy初始化 310
16.3 HAProxy构建Puppet 312
16.3.1 利用HAProxy扩展Puppet集群 313
16.3.2 Puppet的升级 314
第17章 Puppet管理SSO实践 317
17.1 SSO介绍 317
17.1.1 什么是SSO 317
17.1.2 SSO系统工作流程图 318
17.1.3 SSO系统架构 318
17.2 通过Puppet管理与运营SSO系统 320
17.2.1 Puppet系统初始化 321
17.2.2 Puppet配置管理环境的初始化 323
第18章 Puppet快速构建企业内部网实践 335
18.1 Puppet初始化 335
18.2 Puppet辅助工具 339
18.2.1 Puppet Forge 339
18.2.2 Example42 340
18.3 快速构建企业内部网 342
18.3.1 企业内部网介绍 342
18.3.2 构建企业内部网 343
Puppet权威指南的更多相关文章
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- JavaScript权威指南 - 对象
JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...
- JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...
- 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块
五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options] -v,--verbose ...
- 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令
2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...
- 读《Android编程权威指南》
因为去年双十二购买了一折的<Android 编程权威指南(第一版)>,在第二版出来后图灵社区给我推送了第二版的优惠码,激动之余就立马下单购买电子书,不得不说Big Nerd Ranch G ...
- maven权威指南学习笔记(五)—— POM
1. 简介 Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里 ...
- maven权威指南学习笔记(一)——简介
maven是什么?有什么用? Maven是一个项目管理工具,它包含了 一个项目对象模型 (Project Object Model), 一组标准集合, 一个项目生命周期(Pro ...
- 《javascript权威指南》读书笔记——第二篇
<javascript权威指南>读书笔记——第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字 ...
随机推荐
- 一些sql二
1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1(仅用于SQlServer)法二:sel ...
- 使用泛型元组替代out与ref形式传参
我们在开发的时候,都会常常遇到一个问题,如何为逻辑上返回多个对象设计方法签名.通常我们会想到使用out或ref修饰参数,或者麻烦些自己设定一个类型内部包含多个Object类型属性来接收多个返回值.这两 ...
- 孙鑫MFC学习笔记4:MFC画图
1.画线方法 *1.捕获鼠标按下和弹起消息,获取两个点 *2.消息响应,画线 2.在CMainFrame类中的鼠标左键事件得不到响应的原因是CNameView覆盖了CMainFrame 3.注释宏 4 ...
- MySQL Error Handling in Stored Procedures 2
Summary: this tutorial shows you how to use MySQL handler to handle exceptions or errors encountered ...
- 程序员下一门要学的编程语言Swift
基于PHP是世界上最好的编程语言这个真理,我一直认为Hack才是程序员要学的下一门编程语言. 但今天看到InfoQ放出的新闻:"Google或许会将Swift编程语言纳入Android平台并 ...
- 袋鼠过河---DP
题目:一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远,每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5, ...
- python队列Queue
Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 clas ...
- windows下打包react-native应用程序
P.S.0:不截图了,上传图片太麻烦,每次只能上传一张.... 先生成签名文件,如果已有签名文件略过此步: keytool -genkey -v -keystore my-release-key.ke ...
- 前端mvc框架backbone.js入门
关于backbone.js的优缺点,这里就不详谈了,网上关于这方面的讨论很多了,而且各种框架之所以长久生存,通常都是有其特定优势和擅长点的. 使用backbone.js作为前端框架的应用通常都是htm ...
- 学习hadoop遇到的问题
1.运行hadoop的帐号,需要多大的权限? 之前实验用的帐号是root,后来新建了个普通帐号,发觉不能直接套用到已经建立好的hadoop系统,因为无权限,即使将普通帐号加入到root群组仍然存在异常 ...