Chef是一家自动化公司。自2008年成立以来,我们一直在将开发人员和系统管理员与我们的同名产品Chef Infra联系在一起。多年来,我们所说的自动化已经扩展了。今天,Chef为基础设施和应用程序提供了一个完整的自动化解决方案,可以将您从开发带到生产。这是完整的厨师解决方案。

Git地址: https://github.com/chef/chef-web-docs

Chef Infra

Chef Infra是一个强大的自动化平台,可以将基础设施转换为代码。无论您是在云环境、本地环境还是混合环境中进行操作,Chef Infra都会自动地在您的网络中配置、部署和管理基础设施,无论其大小如何。

该图显示了如何开发、测试和部署Chef Infra代码。

在将代码部署到其他环境之前,要在workstation上创建和测试代码。您的workstation 是您编写cookbook和管理基础设施的计算机。它通常是你每天使用的机器。它可以是您选择的任何操作系统,无论是Linux、macOS还是Windows。

您需要安装一个文本编辑器(随您喜欢)来编写代码,并使用ChefDK工具来测试您的代码。您将使用的主要测试工具有Cookstyle、ChefSpec、Chef InSpec和Test Kitchen。有了它们,您可以确保在将Chef代码部署到其他人使用的环境(如临时环境或生产环境)之前,它能够执行您希望执行的操作。

当您编写代码时,您使用资源来描述您的基础结构。资源对应于一些基础设施,如文件、模板或包。每个资源都声明系统的一部分应该处于什么状态,而不是如何到达那里。Chef会为您处理这些复杂的问题。Chef提供了许多可供您使用的资源。您还可以利用community cookbooks中提供的资源,或者编写自己的特定于基础设施的资源。

Chef recipe是对相关资源(如配置web服务器、数据库服务器或负载均衡器所需的一切)进行分组的文件。一本chef recipe为你的食谱提供了结构,总的来说,帮助你保持组织。

ChefDK包含用于与Chef交互的其他命令行工具。其中包括用于与Chef Infra服务器交互的knife,以及用于与本地Chef代码存储库交互的Chef (Chef -repo)。

上传代码到 Chef Infra Server

在本地workstation上完成了代码的开发和测试之后,就可以将其上传到Chef Infra服务器。Chef Infra服务器充当配置数据的中心。它存储recipe、应用于基础结构中的系统的策略和描述每个系统的元数据。knife命令可以让您从您的workstation与Chef Infra服务器通信。例如,您使用它来上传您的cookbook。

使用 Chef Infra Client 配置节点

Chef Infra的构造使得大部分计算工作都发生在节点上,而不是Chef Infra server上。节点表示服务器,通常是虚拟机、容器实例或物理服务器。基本上,它是由Chef管理的基础设施中的任何计算资源。所有节点都安装了Chef Infra client。

Chef Infra client定期与Chef Infra server联系,检索最新的cookbook。如果(且仅当)节点的当前状态不符合cookbook所描述的,则Chef Infra client将执行cookbook指令。这个迭代过程确保网络作为一个整体收敛到业务策略所设想的状态。

Chef Habitat

hef Habitat提供了一种部署应用程序的新方法,称为应用程序自动化。应用程序自动化意味着无论应用程序部署在何处,自动化都与应用程序打包在一起并随其一起传播。部署单元成为应用程序及其相关的自动化。运行时环境,无论是容器、裸金属还是PaaS,都不会以任何方式定义应用程序。

Chef Habitat由packaging format和supervisor组成。该格式定义了孤立的、不可变的和可审计的Chef Habitat packaging。Chef Habitat supervisor知道如何拿包并运行它们。它知道包的对等关系、升级策略和安全策略。要了解关于Chef Habitat的所有信息,请访问Chef Habitat网站https://www.habitat.sh。

Chef InSpec

Chef InSpec是一个开源的测试框架,它使用一种可由人类和机器阅读的语言来指定遵从性、安全性和策略需求。当遵从性以代码的形式表示时,您可以将其集成到部署管道中,并自动测试安全性策略的遵从性

Chef InSpec代码可以在多个平台上运行。您可以使用使用SSH或WinRM的远程命令,或者使用Docker API之类的外部机制,在本地执行相同的测试集。

使用Chef InSpec,您可以做的不仅仅是确保物理服务器符合要求。例如,您可以评估数据库中的数据,或者使用虚拟资源的API检查虚拟资源的配置。

为了了解Chef InSpec语言是如何工作的,这里有一些示例。此Chef InSpec规则确保不使用不安全的服务和协议(如telnet)。

describe package('telnetd') do
it { should_not be_installed }
end describe inetd_conf do
its("telnet") { should eq nil }
end

Chef Automate

Chef Automate 为工作流、节点可见性和遵从性提供了一整套企业功能。Chef Automate 集成了开源产品Chef Infra、Chef InSpec和Chef Habitat。Chef Automate 为整个平台提供了全面的24x7支持服务,包括开源组件。

Chef Automate 为您提供了一个完整的连续部署管道、遵从性和安全性的自动化测试,以及在您通过管道移动应用程序和基础设施时以及在生产环境中所发生的所有事情的可见性。

Workflow

Chef Automate 包括一个用于持续交付基础设施和应用程序的管道。这种全堆栈方法(基础设施更改与任何应用程序更改一起交付)允许高速安全部署。下面是Chef自动工作流程

Chef自动化管道具有自动化的质量检验关,可以将开发人员工作站的更改一直转移到生产环境。您的团队批准一个提议的变更,并且,在验收测试之后,发布相应的工件以交付到生产环境中。验收阶段之后,工件转移到联合、排练和交付阶段的管道。

联合阶段支持跨团队协作——它包含质量检验关,确保一个团队或组织所做的更改与其他团队并行所做的更改保持一致。

Chef Automate包括一个图形用户界面,向您展示整个过程。例如,您可以一眼看出哪些组织包括哪些项目。仪表板允许您跟踪每个更改,并在更改通过管道时查看其状态。

Nodes

Chef Automate为您提供了一个数据仓库,它接受来自Chef服务器、Chef Habitat和Chef automation工作流和遵从性的输入。它提供了操作和工作流事件的视图。可以通过UI和可定制的仪表板使用查询语言。

下面是Chef自动化仪表板的一个示例

Compliance

Chef Automate创建可自定义的报告,以识别遵从性问题、安全风险和过时的软件。您可以在Chef InSpec中编写自己的遵从性规则,也可以通过使用内置配置文件快速入门,内置配置文件是各种安全框架(如Internet security Center (CIS)基准测试)的预定义规则集,是Chef自动化的一部分。

High availability

Chef automation包括一个高可用性的Chef Infra服务器,该服务器具有容错能力、即时一致的搜索结果和关于基础设施的准确实时数据。Chef Automate还为Chef Infra服务器提供了一个图形化的管理控制台。

Chef 组件的更多相关文章

  1. omnibus-gitlab 架构学习

    omnibus-gitlab是gitlab 团队fork 自chef 的omnibus 项目,同时做了一些自定义的开发,omnibus-gitlab 简化了 gitlab 的部署以及维护,同时里边集成 ...

  2. 使用Chef管理windows集群

    但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰.试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半 ...

  3. 使用Chef管理windows集群 | 运维自动化工具

    但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰.试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半 ...

  4. Chef 自动化运维:Chef 的安装

    安装准备 准备三台服务器,分别用作 Chef Server.Chef DK.Chef Client 的安装使用. 在三台服务器中,添加以下 hosts: vim /etc/hosts 192.168. ...

  5. 使用 Chef 自动执行 Azure 虚拟机部署

    Chef 是一个强大的工具,用于提供自动化和所需的状态配置. 使用我们的最新 cloud-api 版本,Chef 提供了与 Azure 的无缝集成,使得你能够通过单个命令设置和部署配置状态. 在本文中 ...

  6. 在Linux上安装Chef工作站

    导读 Chef是一个IT基础设施自动化软件,它可以管理你组织中所有的服务器和网络设备.当我们想与Chef服务器.任何物理节点(服务器.网络设备等)的基础设施进行交互时,我们需要一个Chef工作站.本教 ...

  7. chef简介

    Chef 的简单介绍 Chef 主要分为三个部分 Chef Server.Workstation 以及 Chef Client.用户在 Workstation 上编写 Cookbook.然后,通过 k ...

  8. ExtJS 4.2 评分组件

    上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...

  9. react组件的生命周期

    写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...

随机推荐

  1. JavaScript--QuckStudy

    Day1: 初识JS: https://www.liaoxuefeng.com/wiki/1022910821149312 >打印: alert('我要学JavaScript!'); >J ...

  2. SSD目标检测实战(TF项目)——人脸检测2

    数据转化为VOC格式: 一.我们先看 VOC格式的数据是什么??? Annotations:存放xml 包括 文件夹信息   图片名称. 图片尺寸信息. 图片中object的信息. JPEGImage ...

  3. url编码问题小计

    昨天通过get访问服务器遇到了服务器获取不到参数的问题,最后排查下来是因为url编码的原因,之前使用的是字符串拼接,所以有一些特殊字符如‘%’没有正确的编码, 通过改成各个部分编码,正确获取到数据. ...

  4. .Net面试题三

    1..Net中类和结构的区别? 2.死锁地必要条件?怎么克服? 3.接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类? 4.构造器COnstructor是否可以被继承?是否可以被 ...

  5. 服务端相关知识学习(一)之什么是zookeeper

    什么是zookeeper zookeeper是分布式协调服务,可以在分布式系统中共享配置.协调锁资源.提供命名服务那分布式协调服务又是个什么东西呢?首先我们来看“协调”是什么意思.在一个并发的环境里, ...

  6. JS基础_对象的简介、对象的基本操作

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 利用Cmake 将最新版本OBS编译成windows版本。

    准备工作: 1. VS2013 的最新更新版或者VS2015 2. QT Creater 5.7   https://www.qt.io/ 3.  CMake (cmake-gui) 4. obs 依 ...

  8. Java 串口通信 Ubuntu

    说一下我的操作过程吧 在Windows上先用阿猫串口网络调试助手,进行调试: 在网上找Java代码,我选择的是RXTXcomm,网上代码很多,基本都一样. 在Windows电脑上把rxtx压缩包中的r ...

  9. img 图像底部留白的原因以及解决方法

    有时候,我们在添加图片img标签后并没有给该标签设置magrin属性的margin-bottom值,在有些浏览器中打开就会出现图像底部留白,为什么为造成这个原因?下面就来进行分析:由于img元素默认为 ...

  10. python之时间日期time

    常用的时间函数如下获取当前日期:time.time()获取元组形式的时间戳:time.local(time.time())格式化日期的函数(基于元组的形式进行格式化):time.asctime(tim ...