前言 1
第1章 配置管理和Chef 7
什么是配置管理 7
为什么需要配置管理工具来实现IT自动化 8
Chef是什么 9
为什么企业需要Chef 9
接下来要做什么 12
第2章 配置Chef开发环境 15
安装一个适合程序员使用的文本编辑器 16
Chef开发工具 17
在Linux下安装Chef开发工具 18
在Windows下安装Chef开发工具 32
小结 41
第3章 Ruby和Chef语法 43
Ruby概述 43
Ruby语法和案例 44
Chef语法和案例 54
第4章 如何写第一个Chef配方单 61
创建代码的目录结构 61
写下第一个Chef配方单 62
验证第一个Chef配方单 63
用配方单指定理想配置 65
卸载时,须明确指定不要做什么 69
小结 71
第5章 用Test Kitchen管理沙盒测试环境 73
安装Vagrant和VirtualBox 75
启动自己的第一个虚拟机 79
YAML概览 84
用.kitchen.yml配置Test Kitchen 86
小结 87
第6章 用Chef客户端管理节点 89
什么是节点 89
在一个节点上创建沙盒环境 90
用Test Kitchen在节点上安装Chef客户端 91
第一次运行Chef客户端 93
Chef客户端的三种模式 95
命令行工具Ohai 96
访问节点信息 98
小结 100
第7章 撰写和使用菜谱 103
你的第一个菜谱:每日消息 103
你的第一个菜谱:每日消息(使用Chef开发包) 104
Cookbook_file资源简介 106
你的第一个菜谱:每日消息(Chef客户端) 107
Cookbook_file资源简介 109
第一次运行Chef 110
验证结果 112
剖析Chef运行 113
菜谱结构 116
必须了解的四个资源 119
Apache菜谱:手把手教你创建菜谱 119
小结 130
第8章 属性 133
Motd-Attributes菜谱 134
设定属性 136
属性优先级基础 138
Include_Recipe 139
属性优先级 142
属性排错 143
小结 146
第9章 用Chef服务器同时管理多个节点 147
手动安装企业Chef 149
使用菜谱来自动化安装企业Chef服务器 151
幂等性简介 154
配置企业Chef服务器 159
测试连接 165
准备一个新节点 166
用Chef Solo配置Chef服务器 173
小结 174
第10章 社区以及Chef-Client菜谱 175
使用社区菜谱 175
Chef-Client菜谱 177
Knife Cookbook Site插件 180
使用Knife Cookbook Site搜索社区菜谱 181
通过Knife Cookbook Site管理Chef服务器中的社区菜谱 182
Chef-Client配方单 184
配置Knife使用生产环境SSL设置 186
配置Chef-Client使用生产环境的SSL设置 188
小结 196
第11章 Chef Zero 197
Test Kitchen和Chef Zero 197
用Chef-Playground在宿主机器上运行Chef-Zero 200
小结 205
第12章 搜索 207
从命令行搜索 207
用Knife从命令行搜索 208
使用Test Kitchen从配方单中搜索 211
小结 215
第13章 数据包 217
在配方单中使用数据包项目的数据创建本地用户 222
验证用户 226
加密数据包 227
小结 233
第14章 角色 235
创建一个网页服务器角色 236
属性和角色 238
角色和搜索 239
角色菜谱 241
小结 242
第15章 环境 243
创建一个开发环境 244
属性和环境 245
完整实例 247
小结 258
第16章 测试 259
关于测试 259
重温Apache菜谱 262
使用Serverspec进行自动化测试 266
使用Foodcritic进行自动化测试 283
使用ChefSpec进行自动化测试 287
小结 295
第17章 结语 297
词汇表 298
附录A 开源Chef服务器 301
附录B 托管企业Chef 323