《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