目 录
第1章 开始使用Puppet 1
1.1 什么是Puppet 1
1.1.1 部署 2
1.1.2 配置语言和资源抽象层 3
1.1.3 事务层 5
1.2 选择正确的Puppet版本 5
1.3 我能混用Puppet的版本吗 6
1.4 安装Puppet 7
1.4.1 在Red Hat企业版Linux和Fedora上面安装Puppet 7
1.4.2 在Debian和Ubuntu上安装Puppet 8
1.4.3 在OpenSolaris上安装Puppet 9
1.4.4 从源码安装Puppet 9
1.4.5 在微软Windows系统上安装Puppet 10
1.4.6 在其他平台上安装Puppet 10
1.5 配置Puppet 11
1.5.1 site.pp文件 12
1.5.2 配置防火墙 13
1.5.3 启动Puppet Master 13
1.6 连接第一个Agent 15
1.7 创建第一个配置 17
1.7.1 扩展site.pp文件 17
1.7.2 Agent的配置 18
1.8 创建第一个模块 19
1.8.1 模块结构 20
1.8.2 init.pp文件 20
1.9 应用第一个配置 23
1.10 小结 24
1.11 相关资源 25
第2章 使用Puppet构建主机 26
2.1 入门 27
2.1.1 安装Puppet 27
2.1.2 配置节点 27
2.2 魔术般的模块 32
2.3 创建一个模块管理SSH 35
2.4 创建一个模块来管理Postfix 43
2.4.1 postfix::install类 44
2.4.2 postfix::config类 44
2.4.3 postfix::service类 47
2.5 使用mysql模块管理MySQL 48
2.5.1 mysql::install类 49
2.5.2 mysql::config类 49
2.5.3 mysql::service类 50
2.6 管理Apache和网站 51
2.6.1 apache::install类 51
2.6.2 apache::service类 52
2.6.3 Apache定义 52
2.7 使用Puppet模块管理Puppet 55
2.8 小结 58
2.9 相关资源 58
第3章 使用Puppet环境 59
3.1 配置Puppet环境 60
3.1.1 填充新的环境 61
3.1.2 在开发环境中作出变更 62
3.2 使用Puppet Agent测试新的环境 64
3.3 环境分支和合并 65
3.3.1 设置一个中心仓库 66
3.3.2 使用分支做出一个变更 67
3.3.3 将变更合并到测试环境 75
3.4 生产环境版本 78
3.5 小结 79
3.6 相关资源 80
第4章 Puppet的可扩展性 81
4.1 明确面临的挑战 81
4.2 使用Apache和Passenger运行Puppet Master 82
4.2.1 在企业版Linux上安装Apache和Passenger 82
4.2.2 在基于Debian的系统上安装Apache和Passenger 83
4.2.3 使用Ruby Gem安装Passenger 84
4.2.4 配置Apache和Passenger 84
4.2.5 在Apache中测试Puppet Master 87
4.3 对多个Puppet Master使用负载均衡 88
4.3.1 HTTP的负载均衡 89
4.3.2 Puppet CA的负载均衡配置 98
4.4 测量性能 106
4.5 小结 108
4.6 相关资源 108
第5章 外部Puppet配置 109
5.1 ENC 110
5.1.1 使用ENC配置节点 111
5.1.2 用Shell脚本编写的ENC 111
5.1.3 用Ruby编写的ENC 112
5.1.4 用Perl编写的ENC 114
5.1.5 后端化的节点分类器 115
5.2 在LDAP中存储节点配置 116
5.2.1 安装Ruby LDAP库 116
5.2.2 设置LDAP服务器 117
5.2.3 添加Puppet方案 117
5.2.4 在Puppet中配置LDAP 118
5.3 小结 120
5.4 相关资源 121
第6章 配置的导出与存储 122
6.1 虚拟资源 122
6.1.1 声明和实例化一个虚拟资源 123
6.1.2 使用Realize函数 124
6.1.3 实例化多个虚拟资源 124
6.1.4 关系链语法 125
6.2 导出资源与配置存储 126
6.2.1 用于配置存储的数据库服务器 126
6.2.2 配置Puppet Master来进行配置存储 128
6.2.3 添加一个MySQL表索引 130
6.3 使用导出资源 131
6.3.1 自动化的SSH主机公钥管理 131
6.3.2 导出负载均衡器后端资源 134
6.3.3 自动化的Nagios服务检测 136
6.4 扩展配置存储 139
6.4.1 简化的配置存储 139
6.4.2 配置存储的队列支持 140
6.4.3 在企业版Linux系统上安装ActiveMQ 141
6.4.4 在基于Debian的系统上安装ActiveMQ 142
6.4.5 Puppet Master Queue的设置 144
6.5 过期的资源 145
6.6 小结 146
6.7 相关资源 146
第7章 Puppet控制台:Puppet Dashboard和Foreman 147
7.1 Puppet Dashboard 147
7.1.1 安装Puppet Dashboard 148
7.1.2 配置Dashboard 151
7.1.3 运行Puppet Dashboard 152
7.1.4 集成Puppet Dashboard 155
7.1.5 外部节点分类器 159
7.1.6 日志记录、数据库备份和性能 161
7.2 The Foreman 162
7.2.1 安装Foreman 163
7.2.2 配置Foreman 164
7.2.3 启动Foreman 166
7.2.4 整合Foreman的能力 166
7.2.5 在Foreman中显示报告 168
7.2.6 在Foreman中显示节点信息 169
7.2.7 使用Foreman来触发Puppet运行 170
7.3 小结 171
7.4 相关资源 171
第8章 工具和集成 172
8.1 Puppet Forge和模块工具 172
8.1.1 安装Puppet模块工具 173
8.1.2 在Forge中搜索并安装一个模块 174
8.1.3 使用一个模块 175
8.1.4 使用Puppet-Module工具创建一个模块 177
8.2 Puppet Ruby DSL 187
8.2.1 面临的问题:来自数据的资源 187
8.2.2 从数据中声明资源 187
8.3 Cucumber Puppet 197
8.3.1 安装Cucumber Puppet 198
8.3.2 编写一个故事 199
8.3.3 测试基本的目录策略 202
8.3.4 验证指定的资源 204
8.4 小结 209
8.5 相关资源 210
第9章 Puppet的报告系统 211
9.1 入门 211
9.2 配置报告系统 213
9.3 报告处理器 214
9.3.1 log 214
9.3.2 tagmail 214
9.3.3 rrdgraph 215
9.3.4 http 216
9.4 自定义报告 217
9.5 小结 219
9.6 相关资源 219
第10章 扩展Facter和Puppet 220
10.1 编写并分发自定义的Fact 220
10.1.1 配置Puppet来使用自定义的Fact 220
10.1.2 编写自定义Fact 222
10.1.3 测试Fact 224
10.2 开发自定义的类型、提供者和函数 225
10.2.1 为自定义的类型、提供者和函数配置Puppet 225
10.2.2 编写一个Puppet类型和提供者 226
10.2.3 编写一个Parsed File类型和对应的提供者 231
10.2.4 一个更加复杂的类型和提供者 234
10.2.5 测试类型和提供者 237
10.2.6 编写自定义函数 238
10.3 小结 240
10.4 相关资源 240
第11章 Marionette Collective 242
11.1 安装和配置RabbitMQ 243
11.1.1 在Debian上安装RabbitMQ 244
11.1.2 在RHEL / CentOS上安装RabbitMQ 246
11.1.3 RabbitMQ的配置 247
11.1.4 在Debian和Ubuntu上安装MCollective 248
11.1.5 在企业版Linux上安装MCollective 250
11.1.6 MCollective服务端的配置 251
11.2 MCollective的插件 253
11.2.1 Puppet Agent的MCollective插件 253
11.2.2 MCollective的Facter插件 258
11.2.3 更多插件 259
11.3 使用元数据定位主机 260
11.4 小结 261
11.5 相关资源 262
附录A 和Puppet一起工作 263
· · · · · · (
收起)