Chef server

Chef

是一个面向开发dev和运维人员ops的自动化管理工具

大白话: chef就是一个针对不同系统的安装脚本代码化的管理工具。

安装脚本这个大家都知道,代码化的意思是把各式各样的脚本语言以统一的ruby语言来封装编写,代码化还有一个好处就是可以用git来管理

 

 

架构/工作流程

chef server就是一个资源服务器,上面的cookbook是通过workstation上面knife传上来的

workstation 就是管理员的开发机器用于上传资源到chef server,或者向chef server注册chef client(node),都是用knife

Node: 上面装了chef client,会自动去chef server上,拉取执行命令的清单

 

1. Chef 主要分为三个部分 Chef Server(对client也就是所有的目标进行管理,包括安装,配置等工作)、Workstation(代码脚本开发机) 以及 Chef Client(需要进行配置的目标服务器)。

2. 用户在 Workstation 上编写 Cookbook,主要是recipe,描述怎么配置服务器。

3. 然后,通过 knife 命令上传到 Chef Server。

4. 最后,在任意一台Chef Client 上通过pem认证,拉取server上的cookbook,实施自己的配置和部署工作。

 

所以,对于 Cookbook 的编写在整个自动化部署中起到了重要的作用。

 

名词解释:

Chef, 顾名思义,作为一名厨师,为了完成一道美味,需要一份菜单,也就是 cookbook;里面包含了很多菜的做法,每道菜的做法就是一个 recipe;用于描述每台服务器需要配置哪些信息和资源,可以定义一个 role。通过定制化自己的 cookbook 等内容,同时设置必要的 attribute 属性,就可以大规模部署自己定义好的服务到各自节点。Chef 提供了多种方式来查看,可以通过网页界面来访问,也可以通过命令行方式查看已经配置好的信息。

 

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

  • Recipe 对一个目标机器部署的整个操作(多个resource写到一起就是recipe,将resource顺序执行,可以包含其他recipe)
  • Attribute 是用来定义一个目标机器的属性值的。(比如ip,hostname,内核,机器上的编程语言等和node相关的  )
  • File 是用来作部署的文件。一般会根据操作系统、平台等定义不同的文件配置。
  • Library 用来对 Cookbook 的功能做扩展。我们可以用 Ruby 语言编写自己的类来供 Recipe 调用。
  • Resource ***********很关键,多个resource组成了Recipe,是chef提供的,用来描述系统的某部分需要怎么配置。(像常见的package,Directory,execute,file,service,user,template等都是)
  • Provider 用来定义具体某个 Resource 的执行内容。从编程的角度可以理解为 Resource 定义了一个接口,而 Provider 是这个接口的实现。
  • Template 一些内嵌了 Ruby 标签的文件,通常用来定义配置文件。
  • Metadata 定义了 Cookbook 的属性值,比如,当前的 Cookbook 的版本,支持的平台,对其他 Cookbook 的依赖等信息。

knife cookbook create my-test

创建名为my-test的cookbook,会生成名叫my-test的目录,并在下面有这样的目录结构,各自包含了上述的组件

README.md  attributes  libraries  metadata.rb  metadata.rb.MASTER  recipes  templates  version.json

在README.mb中详细的描述了这个cookbook操作的模块怎么配置安装等

 

用户可以修改已有的成熟的cookbook,使用官方社区的cookbook很简单,只需要修改attributes里面的参数就可以了

也可以自己写cookbook来进行服务器的配置

 

knife data bag create admin

创建data bag,并可以上传到server,数据可被recipe调用

 

 

环境安装

server有server的安装包

client的安装包包括client和knife

workstation上面只需要安装knife

posted on 2016-07-07 16:52  杰克再造  阅读(667)  评论(0编辑  收藏  举报

导航