logo图片
Chef教程
Chef高级

Chef 教程

Chef 是 Opscode 开发的一种配置管理技术,用于管理物理或虚拟机上的基础架构。它是一个使用 Ruby 开发的开源软件,有助于动态管理复杂的基础设施。本教程提供了对使用 Chef 管理基础设施的基础设施和基本概念的基本理解。
Chef 是由 Opscode 开发的开源技术。 Opscode 的联合创始人 Adam Jacob 被称为 Chef 的创始人。该技术使用 Ruby 编码来开发基本构建块,如Cookbook和Cookbook。 Chef 用于基础架构自动化,有助于减少基础架构管理中的手动和重复性任务。
Chef 对不同的构建块有自己的约定,这些构建块是管理和自动化基础设施所必需的。

为什么是Chef?

Chef 是一种配置管理技术,用于自动化基础设施配置。它是在 Ruby DSL 语言的基础上开发的。它用于简化配置和管理公司服务器的任务。它能够与任何云技术集成。
在 DevOps 中,我们使用 Chef 在内部和云端部署和管理服务器和应用程序。

Chef的特点

以下是 Chef 最突出的特点-
Chef 使用流行的 Ruby 语言来创建特定领域的语言。 Chef 不对节点的当前状态做出假设。它使用其机制来获取机器的当前状态。 Chef 非常适合部署和管理云服务器、存储和软件。

Chef 的优势

Chef 具有以下优势-
入门门槛较低-由于 Chef 使用原生 Ruby 语言进行配置,这是一种标准配置语言,任何有一定开发经验的人都可以轻松掌握。 与云的完美集成-使用knife 实用程序,它可以轻松地与任何云技术集成。对于希望在多云环境中分布其基础架构的组织而言,它是最佳工具。

Chef 的缺点

Chef 的一些主要缺点如下-
Chef 的一大缺点是Cookbook的控制方式。它需要不断地照顾,这样工作的人就不会弄乱别人的Cookbook。 仅提供 Chef 独奏。 在目前的情况下,它只适合 AWS 云。 如果此人不熟悉 Ruby,则学习起来并不容易。 仍然缺乏文档。

Chef 的关键构建块

Recipe

它可以定义为用于管理基础设施的属性集合。配方中存在的这些属性用于更改现有状态或设置特定基础设施节点。它们在 Chef 客户端运行期间加载并与节点(机器)的现有属性进行比较。然后它进入在配方的节点资源中定义的状态。它是Cookbook的主要主力。

Cookbook

Cookbook是Cookbook的集合。它们是上传到 Chef 服务器的基本构建块。当 Chef 运行时,它会确保其中的配方使给定的基础设施达到配方中列出的所需状态。

Resource

它是用于管理具有不同类型状态的基础设施的配方的基本组件。一个配方中可以有多个资源,这将有助于配置和管理基础设施。例如-
package-管理节点上的包 service-管理节点上的服务 user-管理节点上的用户 group-管理群组 template-使用嵌入式 Ruby 模板管理文件 cookbook_file-将文件从说明书中的文件子目录传输到节点上的某个位置 file-管理节点上文件的内容 directory-管理节点上的目录 execute-在节点上执行命令 cron-编辑节点上现有的 cron 文件

Attribute

它们基本上是设置。它们可以被认为是人们想要在Cookbook中使用的任何东西的键值对。可以应用多种不同类型的属性,与节点在其下运行的最终设置相比具有不同的优先级。

File

它是说明书中的一个子目录,其中包含将放置在使用说明书的节点上的任何静态文件。然后可以将配方声明为将文件从该目录移动到最终节点的资源。

Templates

它们类似于文件,但它们不是静态的。模板文件以 .ebr 扩展名结尾,这意味着它们包含嵌入式 Ruby。它们主要用于将属性值替换到文件中,以创建将放置在节点上的最终文件版本。

Metadata.rb

用于管理包的元数据。这包括包的名称和详细信息等详细信息。它还包括诸如依赖信息之类的内容,这些信息告诉此说明书需要操作哪些说明书。这允许 Chef 服务器正确构建节点的运行列表,并确保正确传输所有部分。

默认Cookbook结构

C:\chef\cookbooks\nginx>tree 
Folder PATH listing for volume Local Disk 
Volume serial number is BE8B-6427 
C: ├───attributes 
├───definitions 
├───files 
│   └───default 
├───libraries 
├───providers 
├───recipes 
├───resources 
└───templates 
    └───default 

Chef-相关技术

以下是 Chef 相关技术的列表。

Puppet

无论软件在哪里运行,Puppet 都提供了一种交付和操作软件的标准方式。它是一个适用于 Linux、Unix 和 Windows 系统的自动化管理引擎,可根据集中规范执行管理任务。
Puppet 的主要 功能如下-
实施具有统一配置的新系统。 更新系统并升级安全和软件包。 加入新功能并添加灵巧的功能。 自定义配置以确保数据源的可用性。 优化可用资源并最大限度地降低成本。 简化角色并使团队能够专注于核心和生产性问题。 鸟瞰可用的基础设施。

Ansible

Ansible 是一个极其简单的 IT 自动化平台,可让您的应用程序和系统更易于部署。避免编写脚本或自定义代码来部署和更新您的应用程序 — 使用接近纯英语的语言实现自动化,使用 SSH,无需在远程系统上安装代理。
Ansible 的主要 特性如下-
简单易学 用 Python 编写 无代理 基于 YAML 的脚本 Ansible 星系

SaltStack

SaltStack 用于数据驱动的配置。它是一种建立在动态通信总线上的基础设施管理新方法。它用于数据驱动的编排、任何基础架构的远程执行以及任何应用堆栈的配置管理。

Fabric

Fabric 是一种基于 Python 的编程语言,它是作为 Python 的 API 开发的,需要在 Python 代码中导入以配置和管理基础设施。
昵称: 邮箱:
Copyright © 2020 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4