精通Puppet配置管理工具(第2版)

图书网 2018年9月5日22:39:111 2.2K

精通Puppet配置管理工具(第2版) 内容简介

《精通Puppet配置管理工具(第2版)》系统介绍了开源配置管理工具Puppet,并提供了帮助使用Puppet的大量资源。书中介绍了如何将Puppet应用在包括Windows在内的多种平台上,如何使用Puppet模块和Hiera,如何使用大量免费好用的Puppet附属工具,如rspec-puppet、Geppetto和PuppetDB等。

《精通Puppet配置管理工具(第2版)》涵盖了安装、使用并利用Puppet进行开发所需要的全部知识、内部技巧和技术,非常适合系统管理员、操作人员和开发人员阅读。

精通Puppet配置管理工具(第2版) 目录

第1章 Puppet初体验 1

1.1 什么是Puppet 1

1.1.1 部署层 2

1.1.2 配置语言与资源抽象层 3

1.1.3 事务层 5

1.2 选择正确的版本 6

1.3 安装Puppet 6

1.3.1 Red Hat Enterprise Linux和Fedora 7

1.3.2 Debian和Ubuntu 8

1.3.3 OpenIndiana 9

1.3.4 Solaris 10和Solaris 11 9

1.3.5 基于源代码安装 9

1.3.6 Microsoft Windows 10

1.3.7 Mac 12

1.3.8 其他平台 15

1.4 配置Puppet 16

1.4.1 site.pp文件 17

1.4.2 防火墙配置 17

1.4.3 启动Puppet master 17

1.5 连接客户端 19

1.6 创建第一个配置项 21

1.7 创建一个模块 23

1.7.1 模块结构 23

1.7.2 init.pp文件 23

1.7.3 应用这个配置项 26

1.8 小结 27

1.9 相关资源 28

第2章 用Puppet构建主机 29

2.1 开始 30

2.1.1 安装Puppet 30

2.1.2 在Kickstart中集成和启动Puppet 30

2.2 配置节点 31

2.2.1 相似主机的处理方法 31

2.2.2 使用外部配置 32

2.2.3 默认节点 32

2.2.4 节点继承 32

2.2.5 变量域 33

2.2.6 Puppet Style Guide 36

2.3 用模块变魔术 36

2.3.1 将模块代码纳入版本控制 38

2.3.2 创建模块来管理SSH服务 40

2.3.3 创建模块来管理Postfix 49

2.3.4 用mysql模块管理MySQL 52

2.3.5 管理Apache与网站 56

2.3.6 用Puppet模块管理Puppet 60

2.4 小结 64

2.5 相关资源 64

第3章 开发和部署Puppet 65

3.1 puppet apply命令和操作模式 65

3.1.1 用Puppet做屏幕输出 65

3.1.2 用Notify测试Puppet行为 66

3.1.3 用puppet apply处理清单文件 66

3.2 前台运行Puppet Master 69

3.3 用Vagrant开发Puppet 71

3.3.1 Vagrant的初始设置 72

3.3.2 启动Vagrant沙箱 73

3.3.3 在Vagrant沙箱中配置Puppet 73

3.3.4 用Vagrant测试Puppet 74

3.3.5 销毁和重建Vagrant沙箱 74

3.4 环境 75

3.4.1 维护模块 76

3.4.2 外部模块开发工具 76

3.4.3 配置Puppet环境 76

3.4.4 复制新环境 77

3.4.5 创建代码库副本 77

3.5 改变开发环境 78

3.6 用Puppet agent测试新环境 80

3.7 环境的分支与合并 82

3.7.1 创建一个中央代码库 82

3.7.2 为模块创建裸代码库 82

3.7.3 作一些修改 83

3.8 通过Git分支创建动态Puppet环境 83

3.9 小结 87

3.10 相关资源 87

第4章 横向扩展Puppet 88

4.1 确定挑战 88

4.2 基于Apache和Passenger运行Puppet master 89

4.2.1 安装Apache和Passenger 89

4.2.2 配置Apache和Passenger 92

4.3 测试Apache中的Puppet master 96

4.4 为多个Puppet master做负载均衡 97

4.4.1 HTTP负载均衡 97

4.4.2 Puppet master工作进程配置 98

4.4.3 详解前端负载均衡器配置 101

4.4.4 测试负载均衡器配置 102

4.5 进一步扩展 108

4.6 其他负载均衡方案 119

4.6.1 基于DNS round robin的负载均衡 119

4.6.2 基于DNS SRV记录的负载均衡 119

4.6.3 使用TCP负载均衡 119

4.6.4 IP任播 122

4.6.5 独立运行模式下的Puppet 122

4.7 测试性能 125

4.8 避免惊群效应 127

4.9 小结 127

4.10 更进一步 127

4.11 相关资源 127

第5章 外部Puppet配置 129

5.1 外部节点分类 129

5.1.1 用外部节点分类脚本配置节点 130

5.1.2 Shell外部节点分类脚本 131

5.1.3 YAML中的参数化类 132

5.1.4 Ruby外部节点分类脚本 132

5.1.5 Perl外部节点分类脚本 134

5.1.6 基于数据库的外部节点分类脚本 135

5.2 用LDAP存储节点配置 136

5.2.1 安装Ruby LDAP库 136

5.2.2 配置LDAP服务器 137

5.2.3 添加Puppet模式 137

5.2.4 在Puppet中配置LDAP 138

5.3 小结 140

5.4 相关资源 140

第6章 导出和存储配置 141

6.1 虚拟资源 141

6.1.1 声明并实例化虚拟资源 142

6.1.2 用realize函数实例化虚拟资源 142

6.1.3 实例化多个虚拟资源 143

6.1.4 关系链语法 143

6.2 初识导出和存储配置 144

6.3 使用导出资源 146

6.3.1 SSH公钥的自动化管理 146

6.3.2 导出负载均衡器的工作进程资源 148

6.3.3 Nagios服务监控自动化 149

6.4 清除过期资源 152

6.5 小结 153

6.6 相关资源 153

第7章 Puppet控制台工具 154

7.1 Foreman 154

7.1.1 安装Foreman 154

7.1.2 从Puppet导入数据 158

7.1.3 连接第一个客户端 159

7.1.4 将Foreman用作ENC 160

7.1.5 Foreman的报告特性 161

7.1.6 用Foreman搜索节点信息 162

7.2 企业版Puppet控制台 163

7.2.1 安装企业版Puppet 163

7.2.2 连接PE客户端和控制台 164

7.2.3 为节点添加类 164

7.2.4 盘点服务 165

7.2.5 实时管理 165

7.3 Puppetboard 166

7.3.1 安装过程 166

7.3.2 控制中心的标签页 167

7.3.3 Puppetboard的未来 169

7.4 小结 169

7.5 相关资源 170

第8章 工具与整合 171

8.1 Puppet Forge与模块工具 171

8.2 从Forge中搜索并安装模块 172

8.3 创建一个模块 174

8.4 管理模块间依赖 176

8.4.1 Puppet librarian 176

8.4.2 r10k 177

8.4.3 Puppet-lint 178

8.5 测试模块 179

8.5.1 spec-puppet 179

8.5.2 TravisCI 184

8.5.3 rspec-system 185

8.6 使用Geppetto开发Puppet模块 188

8.7 小结 191

8.8 相关资源 191

第9章 Puppet的报告系统 192

9.1 报告系统初体验 192

9.2 配置报告系统 194

9.3 报告处理器 194

9.3.1 log 195

9.3.2 tagmail 195

9.3.3 rrdgraph 196

9.3.4 http 196

9.3.5 PuppetDB 197

9.4 自定义报告 197

9.5 其他报告工具 199

9.6 小结 199

9.7 相关资源 199

第10章 扩展Facter和Puppet 200

10.1 编写并发布自定义fact 200

10.1.1 Puppet的自定义fact配置 200

10.1.2 编写自定义fact 201

10.1.3 测试fact 204

10.1.4 外部fact 204

10.2 开发自定义类型、提供者和函数 205

10.2.1 配置Puppet的类型、提供者和函数 205

10.2.2 编写Puppet类型和提供者 206

10.2.3 编写一个解析文件类型和提供者 210

10.2.4 一个更复杂的类型和提供者 213

10.2.5 测试类型和提供者 216

10.2.6 编写自定义函数 216

10.3 小结 219

10.4 相关资源 219

第11章 MCollective 220

11.1 背景介绍 220

11.2 安装和配置MCollective 221

11.2.1 创建并保存证书 222

11.2.2 验证权限 223

11.3 测试 224

11.4 安装MCollective插件 225

11.4.1 Puppet agent插件 226

11.4.2 Facter插件 228

11.4.3 NRPE插件 228

11.5 通过元数据定位主机 230

11.6 附属插件 231

11.7 小结 231

11.8 相关资源 232

第12章 Hiera: 分离数据与代码 233

12.1 Hiera能做什么 233

12.2 在旧版Puppet上安装Hiera 235

12.3 Hiera初始配置 235

12.4 Hiera命令行工具 237

12.4.1 创建一个Hiera数据文件 237

12.4.2 执行Hiera查询 237

12.4.3 用Puppet做Hiera查询 238

12.4.4 浏览层次结构数据 238

12.4.5 创建动态层次结构 239

12.4.6 在Hiera查询中使用变量 239

12.4.7 结合Puppet和变量做Hiera查询 240

12.4.8 层次结构组织 240

12.5 复杂数据结构 241

12.5.1 返回结构化数据 241

12.5.2 数组合并 242

12.5.3 散列合并 243

12.6 其他后端 245

12.6.1 文件后端 246

12.6.2 JSON后端 248

12.6.3 MySQL后端 249

12.6.4 gpg后端 251

12.7 Hiera函数的高级用法 254

12.8 模块数据绑定 255

12.9 Hiera实例 257

12.9.1 create-resources()函数 258

12.9.2 将Hiera用作ENC 259

12.10 Hiera-2 260

12.11 小结 260

12.12 相关资源 261

精通Puppet配置管理工具(第2版) 精彩文摘

1.1 什么是Puppet

Puppet是一个基于Ruby语言的配置管理工具,使用Apache 2.0许可证分发。它有两种运行模式:服务器端-客户端模式和独立运行(stand-alone)模式。Puppet最初由Luke Kanies开发,现在由他的公司Puppet Labs开发。Kanies从1997年开始从事Unix系统管理工作,并基于此经验开发了Puppet。由于对已有的配置管理工具不满意,Kanies从2001年开始这方面的工具开发工作,并于2005年创立了Puppet Labs,一家专注于研究自动化工具的开源技术开发公司。不久,Puppet Labs发布了旗舰产品Puppet Enterprise(企业版)。Puppet有两个版本:开源版和企业版。企业版包含一个自动安装工具、一个Web管理界面以及技术支持。本书主要介绍开源版,但由于这两个版本使用了相同的内核,因此这些知识对两者都适用。

Puppet可以管理Unix(包括OS X)、Linux和Microsoft Windows平台上的配置,它可以管理一台主机的整个生命周期:安装、升级、维护以及报废。Puppet的特点在于能与主机持续交互,而不像有些预安装工具那样,安装完系统后就不管了。

Puppet有一个易于理解和实施的操作模型(见图1-1),这个模型包含3个部分:

部署层

配置语言与资源抽象层

事务层

图书网:精通Puppet配置管理工具(第2版)

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

软件工程/开发项目管理

软件设计重构pdf

以4个设计原则为中心,全面呈现25种在软件项目中导致技术债务的设计坏味 提供一种独特的坏味命名方法,帮助理解坏味的由来并指出潜在重构方法 包含丰富的例证,展现糟糕设计实践的潜在坏味...
软件工程/开发项目管理

DevOps 最佳实践pdf

DevOps 最佳实践 作者: Bart de Best(巴特・德・贝斯特) DevOps 最佳实践 出版社:电子工业出版社 DevOps 最佳实践 内容简介 近年来,许多组织都体会到了使用敏捷方法的...
软件工程/开发项目管理

Android组件化架构pdf

Android走过的十个年头,其技术演进也是有迹可循的,本书作者基于自己在大型App架构的技术演进中成长的经历,将遇到的相关问题进行深入剖析,包括Android 组件化架构、模块化...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:1   其中:访客  1   博主  0
    • Evan
      Evan 1

      怀着对技术向往的心