# Chef vs Puppet
### Puppet
- 历史 : 有一些
- 用户 : 多,有名的公司也在用
- 开发的活跃度 : 中等
- 文档 : 多
- 设定文件 : 用专用的文法书写(外部DSL),不需要懂Ruby语言。
- 设定的构成 : 有点难懂
- 依存关系的处理 : 运行次序是根据状况由系统端决定的。
- 必要的中间软件 : 没有
- 安装 : 简单,用gem的安装就可以
- 和其他系统的协作 : 感觉基本上没有
### Chef
- 历史 : 还年轻
- 用户 : 37signals(BaseCampe)/ IBM /Facebook/Youtube / Twitter / Linkedin 等
- 开发的活跃度 : 活跃(感觉正在旺季
- 文档 : 也足够了
- 设定文件 : 用Ruby书写(内部DSL)
- 设定的构成 : 相对容易理解,命名等很合适
- 依存关系的处理 : 好像Makefile 基本上是书写顺序。相比Puppet更具脚本风格
- 必要的中间软件 : 服务端需要有CouchDB、RabbitMQ
- 安装 : 服务端容易死。没有加入包中的话比较困难。客户端的话简单,只要gem就可以
- 和其他系统的协作 : 因为使用RESTful的服务API,用JSON可以取值,所以好像能做许多事
现在puppet社区也比较火,大多是运维出身的IT人员在使用, 而倾向于Chef的人,更偏向于开发人员多一些,像我本人,就倾向于Chef。
- 序
- Chapter 1: 初识Chef
- 一些背景
- Chef vs Puppet
- Chapter 2: Chef应用
- Chef架构
- Chef能做什么
- Chef组件
- Chef环境安装
- chef-server
- opscode-chef
- chef-solo
- Chef实战
- 实战前的必修理论
- 使用Chef
- Chapter 3: Ruby基础
- 对象与方法
- 标识符
- 类与模块
- 数据类型
- 真与假
- 控制语句
- 代码块
- Chapter 4: Chef源码架构
- Rubygems与gem
- bundler
- Chef源码组织
- Chapter 5: Rails基础
- Rails是什么
- MVC架构
- Restful
- Rails组成与项目结构
- Chapter 6: Chef Server WebUI
- Chef Server Webui组织结构
- Chef Rest API
- 参考