--- title: Chef localeTitle: 领导者 --- ## 厨师 Chef是一种自动化工具,可将基础架构转换为代码。换句话说,它是一种用于自动创建和配置基础结构的工具。它还用于在创建基础结构后维护它。 ### 为何使用Chef 在完全完成并经过测试的应用程序投入生产之前,需要考虑几件事情。一些主要的事情是, * 基础设施创建(云或内部部署) * 组态 * 维护基础设施 您可以手动创建基础架构,对其进行配置和维护。这是一个非常繁琐的过程,犯错误的可能性很高。任何手册都需要大量关注细节,在团队中进行其他培训,并不断关注它以确保一切按预期工作。如果您的应用程序快速发展,那么每次进入生产时您都必须手动完成所有这些工作。 Chef是一个有助于自动执行此过程的工具。您为您的基础架构编写代码(chef使用_Ruby_ )并对其进行源代码控制。 Chef将阅读此代码以自动创建和配置您的基础架构。使用Chef的优点是, * 基础架构创建和配置自动化 * 监控和维护是自动化的 * 错误的可能性微不足道 * 基础设施受源控制 * 快速且经常地部署应用程序 ### 大图和组件 ![Chef big picture](https://docs.chef.io/_images/chef_overview.svg "厨师概述") 主要组成部分是, * 食谱和食谱 * 节点 * 工作站 * 厨师服务器 * 厨师客户 #### 食谱和食谱 Cookbook是配置的基本单位。它定义了一个场景,并包含支持该场景所需的所有内容。 Cookbook包含以下内容, * 食谱 * 属性值 * 文件分发 * 模板 * 自定义资源和库的扩展 配方是最基本的配置元素。它使用_Ruby_编写,包含配置系统所需的一组资源。它必须存储在食谱中。 #### 节点 节点是由Chef管理的任何计算机。它可以是物理,虚拟,云,网络设备等。 #### 工作站 工作站(大图中的蓝色区域)是运行Chef Development Kit(ChefDK)的计算机,用于开发和测试烹饪书和食谱。基本上,它是您的本地计算机,您可以在其中编写和测试稍后用于自动化基础结构的Chef脚本。 Workstation的Chef脚本在准备好后上传到Chef Server。 #### 厨师服务器 厨师服务器充当配置数据的中心。它存储基础结构创建和配置所需的所有配置数据,如烹饪书,配方,模板和文件分发。 #### 厨师客户 Chef Client是在Chef管理的每个节点上本地运行的代理。它与Chef Server通信以获取配置节点所需的配置数据。 Chef客户端负责运行所有必需的步骤以使节点进入预期状态。不同的步骤包括, * 使用Chef服务器注册和验证节点 * 同步Cookbook * 编译并运行所需的配方 * 处理异常和通知 #### 更多信息: 可以在此处找到更详细的文档 - [Chef文档](https://docs.chef.io/chef_overview.html "厨师")