# Chef架構

*chef架構圖*
### Chef架構說明
-
有一個中心服務器(運行chef-server)
- Chef將數據存儲在CouchDB數據庫里面
- RabbitMQ和chef-solr等提供搜索的功能
- Chef還提供了個圖形的用戶界面(cher-server-webui)
-
可以有多個Workstation(運行knife工具對Chef進行配置)
- Workstation上有一個pem文件,knift利用它作為認證來和chef-server通過REST API進行通信
- Workstation將配置(利用Recipe等描述各Client應該如何配置自己)上傳到服務器
- Workstation和中心服務器可以在同一臺機器
-
可以有多個Client(運行chef-server的被配置機器)
- Client上有一個pem文件,chef-client利用它作為認證來和chef-server通過REST API進行通信
- 當新加一個Client的時候,需要從中心服務器上拷貝validator.pem到新加的Client
- 它利用這個pem進行注冊得到自己的client.pem進行以后的認證
- Client連到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
- 參考