【自动化部署框架Chef介绍】

Whether you have five or five thousand servers, Chef lets you manage them all by turning infrastructure into code. Infrastructure described as code is flexible, versionable, human-readable, and testable. Whether your infrastructure is in the cloud, on-premises or in a hybrid environment, you can easily and quickly adapt to your business's changing needs with Chef.



 

 

hef是,由Ruby开发的服务器的构成管理工具.Chef 作为自动化部署框架,Cookbook 是其整个框架的核心部分之一。Chef 主要分为三个部分 Chef Server、Workstation 以及 Chef Client。 随着 DevOps 的流行,越来越多的工作被自动化处理。在搭建大规模的 IT 架构时,需要系统管理员夜以继日地安装配置服务器、调整各种参数等工作,直到Chef 的出现,将系统管理员从这种水深火热的工作中解脱了出来,他们只需要编写 Chef 脚本,描述出服务器所需要保持的状态,然后运行脚本,服务器就配置好了。随着 DevOps 的流行,越来越多的工作被自动化处理。在搭建大规模的 IT 架构时,需要系统管理员夜以继日地安装配置服务器、调整各种参数等工作,直到Chef 的出现,将系统管理员从这种水深火热的工作中解脱了出来,他们只需要编写 Chef 脚本,描述出服务器所需要保持的状态,然后运行脚本,服务器就配置好了。

Cookbook 主要分为如下几个组件:

Recipe 是用来定义对一个目标机器做部署的整个操作,比如,如何安装,安装哪些包,怎样做配置等。

Attribute 是用来定义一个目标机器的属性值的。类似于定义一个全局变量,通常用来给 Cookbook 的其他组件提供属性值。

File 是用来作部署的文件。一般会根据操作系统、平台等定义不同的文件配置。

Library 用来对 Cookbook 的功能做扩展。我们可以用 Ruby 语言编写自己的类来供 Recipe 调用。

Resource 用来自定义一个状态的运行规则。比如,针对服务的时候,我们可以定义几种不同的状态规则。

扫描二维码关注公众号,回复: 294775 查看本文章

Provider 用来定义具体某个 Resource 的执行内容。从编程的角度可以理解为 Resource 定义了一个接口,而 Provider 是这个接口的实现。

Template 一些内嵌了 Ruby 标签的文件,通常用来定义配置文件。

Metadata 定义了 Cookbook 的属性值,比如,当前的 Cookbook 的版本,支持的平台,对其他 Cookbook 的依赖等信息。



 

Chef 是一个系统集成框架,为整个架构提供配置管理功能,有了 Chef 你可以:

1)Manage your servers by writing code, not by running commands. (via Cookbooks)

2)Integrate tightly with your applications, databases, LDAP  directories, and more. (via Libraries)

3)Easily configure applications that require knowledge about your  entire infrastructure ("What systems are running my application?"  "What  is the current master database server?")

猜你喜欢

转载自gaojingsong.iteye.com/blog/2352897