# 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
- 參考