# Chef架构
![Chef 架构](https://box.kancloud.cn/2015-08-23_55d9d7ad2f9f7.png)
*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
- 参考