厨师 – 概述
厨师 – 概述
Chef 是由 Opscode 开发的开源技术。Opscode 的联合创始人 Adam Jacob 被称为 Chef 的创始人。该技术使用 Ruby 编码来开发基本构建块,如食谱和食谱。Chef 用于基础设施自动化,有助于减少基础设施管理的手动和重复性任务。
对于管理和自动化基础架构所需的不同构建块,Chef 有自己的约定。
为什么是厨师?
Chef 是一种配置管理技术,用于自动化基础设施供应。它是在 Ruby DSL 语言的基础上开发的。它用于简化配置和管理公司服务器的任务。它有能力与任何云技术集成。
在 DevOps 中,我们使用 Chef 在内部和云端部署和管理服务器和应用程序。
厨师的特点
以下是 Chef 最突出的特点 –
-
Chef 使用流行的 Ruby 语言来创建特定于领域的语言。
-
Chef 不会对节点的当前状态进行假设。它使用其机制来获取机器的当前状态。
-
Chef 非常适合部署和管理云服务器、存储和软件。
厨师的优势
厨师提供以下优势 –
-
较低的入门门槛– 由于 Chef 使用原生 Ruby 语言进行配置,这是一种标准配置语言,任何有一定开发经验的人都可以轻松掌握。
-
与云的出色集成– 使用刀具实用程序,它可以轻松地与任何云技术集成。对于希望在多云环境中分布其基础架构的组织来说,它是最佳工具。
厨师的缺点
Chef 的一些主要缺点如下 –
-
Chef 的一大缺点是控制食谱的方式。它需要不断的照顾,这样工作的人不应该弄乱别人的食谱。
-
只有厨师独奏可用。
-
在目前的情况下,它只适合 AWS 云。
-
如果这个人不熟悉Ruby,学习起来就不是很容易。
-
文档仍然缺乏。
Chef 的关键构建块
食谱
它可以定义为用于管理基础设施的属性集合。配方中存在的这些属性用于更改现有状态或设置特定基础设施节点。它们在 Chef 客户端运行期间加载并与节点(机器)的现有属性进行比较。然后它进入在配方的节点资源中定义的状态。它是食谱的主要主力。
食谱
食谱是食谱的集合。它们是上传到 Chef 服务器的基本构建块。当 Chef 运行时,它会确保其中的配方使给定的基础设施达到配方中列出的所需状态。
资源
它是用于管理具有不同类型状态的基础设施的配方的基本组件。一个配方中可以有多个资源,这将有助于配置和管理基础设施。例如 –
-
package – 管理节点上的包
-
service – 管理节点上的服务
-
user – 管理节点上的用户
-
group – 管理组
-
模板– 使用嵌入式 Ruby 模板管理文件
-
cookbook_file – 将文件从说明书中的文件子目录传输到节点上的某个位置
-
file – 管理节点上文件的内容
-
directory – 管理节点上的目录
-
execute – 在节点上执行命令
-
cron – 编辑节点上现有的 cron 文件
属性
它们基本上是设置。它们可以被认为是人们想要在食谱中使用的任何东西的键值对。有几种不同类型的属性可以应用,与节点操作的最终设置相比具有不同的优先级。
文件
它是说明书中的一个子目录,其中包含将放置在使用说明书的节点上的任何静态文件。然后可以将配方声明为将文件从该目录移动到最终节点的资源。
模板
它们类似于文件,但它们不是静态的。模板文件以 .ebr 扩展名结尾,这意味着它们包含嵌入式 Ruby。它们主要用于将属性值替换到文件中以创建将放置在节点上的最终文件版本。
元数据文件
它用于管理有关包的元数据。这包括包的名称和详细信息等详细信息。它还包括诸如依赖信息之类的内容,这些信息告诉此说明书需要操作哪些说明书。这允许 Chef 服务器正确构建节点的运行列表,并确保正确传输所有部分。
默认食谱结构
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 都提供了一种交付和操作软件的标准方式。它是 Linux、Unix 和 Windows 系统的自动化管理引擎,基于集中规范执行管理任务。
Puppet的主要特点如下 –
- 实施具有统一配置的新系统。
- 更新系统并升级安全和软件包。
- 合并新功能并添加灵巧功能。
- 自定义配置以确保数据源的可用性。
- 优化可用资源并最小化成本。
- 简化角色并使团队能够专注于核心和生产性问题。
- 鸟瞰可用的基础设施。
Ansible
Ansible 是一个极其简单的 IT 自动化平台,可让您的应用程序和系统更易于部署。避免编写脚本或自定义代码来部署和更新您的应用程序 — 使用接近纯英语的语言进行自动化,使用 SSH,无需在远程系统上安装代理。
Ansible的主要功能如下 –
- 简单易学
- 用 Python 编写
- 无代理
- 基于 YAML 的剧本
- Ansible 星系
盐堆
SaltStack 用于数据驱动的配置。它是一种建立在动态通信总线上的基础设施管理新方法。它用于数据驱动的编排、任何基础设施的远程执行以及任何应用程序堆栈的配置管理。
织物
Fabric是一种基于 Python 的编程语言,它是作为 Python 的 API 开发的,需要在 Python 代码中导入以配置和管理基础设施。