《Puppet实战》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:刘宇著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111445180
  • 页数:362 页
图书介绍:本书分为四部分:准备篇对Puppet的概念、作用、特色、组织结构、工作用原理、安装与配置、以及运行环境的搭建进行了介绍;基础篇对Puppet的常用命令、资源、模块、类、模板、节点管理、Facter和标签做了详细讲解;实战篇讲解多台服务器安装同一款软件(给1000台服务器安装Ngnix),一个案例是通过Puppet部署zabbix监控;进阶篇则深入探讨了Puppet的版本管理、架构扩展、文件资源管理、控制台、扩展工具、与Mcollective的结合、与Django的结合,以及不同规模下的使用方案等内容。

第一部分 准备篇 2

第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

第二部分 基础篇 50

第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.1 0 stage运行阶段 123

6.1 1本章小结 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

第1 0章 小标签大用途 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

第三部分 实战篇 178

第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

第四部分 进阶篇 224

第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

第1 6章 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 tagrnail发送邮件报告 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