出版时间:2014-1 出版社:机械工业出版社 作者:刘宇
Tag标签:无
内容概要
puppet领域的经典之作,资深运维专家多年一线经验结晶,51cto技术社区强烈推荐,新浪研发中心平台架构部高级总监童剑、资深运维专家田逸、中国最大开源社区chinaunix创始人之一南非蜘蛛、openstack基金会董事程辉等业界资深专家联袂推荐。《puppet实战》详细讲解了puppet的功能和使用方法,深入剖析了puppet的工作原理,系统总结了puppet的使用技巧,包含大量来自一线的实战案例和最佳实践。
全书一共20章,共分为四部分:准备篇(第1~4章)介绍了puppet用途、组织结构、工作原理、核心配置文件、各种平台下的安装与配置,以及它的运行环境,是使用puppet前必须做好的准备工作;基础篇(第5~10章)详细讲解了puppet的理论知识和功能使用,puppet的语法与命令、资源、模块、类、模板、节点管理,以及facter、数组、函数、变量和标签;实战篇(第11~13章)通过几个经典案例,包括大规模nginx集群的部署方案、分布式监控系统部署方案、openstack快速部署方案等,使读者能快速将puppet运用到实践中;进阶篇(第14~20章)综合讲解了puppet的扩展模式、版本控制、报告系统、控制台、扩展工具及mcollective,让读者了解一个完整的puppet生产流程。
作者简介
刘宇,资深运维工程师和系统工程师,曾任职于新浪,担任高级技术工程师,现就职于百度,负责系统运维相关的工作,是国内puppet领域的先驱之一。精通分布式自动化管理平台和分布式监控平台的管理,对视频点播、直播架构、文件加速、调度系统和数据分析都有非常深入的研究,实践经验极为丰富。在国内率先使用puppet进行大规模集群管理,并撰写了puppet配置手册在网络上分享。http://linuxtone.org联合创始人,活跃于infoq和51cto等技术社区,曾被评为infoq金牌讲师和51cto博客之星。
书籍目录
《puppet实战》
前 言
第一部分 准备篇
第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
图书封面
图书标签Tags
无
评论、评分、阅读与下载