Chef是一个配置管理自动化工具,提供了对基础设施即代码(infrastructure as code/IAC)机制的支持。这里的基础设施是指互联网/软件项目中的环境、平台。
基础设施即代码(IAC),含义是通过编写代码来自动化管理基础设施,而不是手工管理。也可以被称为可编程的基础设施。
Chef使用纯ruby、领域特定语言(DSL)编写系统配置。Chef完成的自动化任务类型有:
- 基础设施配置
- 应用程序部署
- 配置是跨网络管理的
就像Puppet有主从架构一样,Chef也是客户端/服务端架构。但是Chef多一个组件,叫做工作站(Workstation),后续章节将介绍。如下图:
Chef中,节点根据服务器中的配置动态更新自己,这称为拉配置,这意味着不需要在Chef服务器上执行任何命令,就可以将配置应用到节点上。