74 lines
3.0 KiB
Markdown
74 lines
3.0 KiB
Markdown
---
|
||
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 "厨师") |