Chef 组件
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 组件的更多相关文章
- omnibus-gitlab 架构学习
omnibus-gitlab是gitlab 团队fork 自chef 的omnibus 项目,同时做了一些自定义的开发,omnibus-gitlab 简化了 gitlab 的部署以及维护,同时里边集成 ...
- 使用Chef管理windows集群
但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰.试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半 ...
- 使用Chef管理windows集群 | 运维自动化工具
但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰.试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半 ...
- Chef 自动化运维:Chef 的安装
安装准备 准备三台服务器,分别用作 Chef Server.Chef DK.Chef Client 的安装使用. 在三台服务器中,添加以下 hosts: vim /etc/hosts 192.168. ...
- 使用 Chef 自动执行 Azure 虚拟机部署
Chef 是一个强大的工具,用于提供自动化和所需的状态配置. 使用我们的最新 cloud-api 版本,Chef 提供了与 Azure 的无缝集成,使得你能够通过单个命令设置和部署配置状态. 在本文中 ...
- 在Linux上安装Chef工作站
导读 Chef是一个IT基础设施自动化软件,它可以管理你组织中所有的服务器和网络设备.当我们想与Chef服务器.任何物理节点(服务器.网络设备等)的基础设施进行交互时,我们需要一个Chef工作站.本教 ...
- chef简介
Chef 的简单介绍 Chef 主要分为三个部分 Chef Server.Workstation 以及 Chef Client.用户在 Workstation 上编写 Cookbook.然后,通过 k ...
- ExtJS 4.2 评分组件
上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
随机推荐
- python基础(十二)--模块
模块的导入方式 import os 调用时os.rename from os import rename #只导入的特定功能 调用时rename() from asynico.events impo ...
- JavaScript的几种循环方式
JavaScript提供了许多通过LOOPS迭代的方法.本教程解释了现代JAVASCRIPT中各种各样的循环可能性 目录: for forEach do...while while for...in ...
- nginx-host
下载nginx镜像 docker pull docker.io/nginx:latest 由于calico网络不支持http协议,所以即使你在iptables中配置了nat路由,将访问宿主机80端口的 ...
- Codeforces 1236E. Alice and the Unfair Game
传送门 首先可以注意到对于固定的起点 $S$ ,它最终能走到的终点一定是一段区间 这个用反证法容易证明,假设合法区间存在断点,这个点左右都可以作为终点 那么分成区间断点在起点左边和起点右边讨论一下即可 ...
- Java 反射理解(一)-- Class 类的使用
Java 反射理解(一)-- Class 类的使用 概念 这里阐述几个基本概念: 在面向对象的世界里,万事万物皆对象.(在 Java 语言中,静态的成员.普通数据类型除外) 类也是对象,类是 java ...
- nignx简单介绍
Nginx的产生 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器.基于REST架构风格,以统一资源描述符(Unifor ...
- dev chart使用
public class LineChartHelp { #region 折线图 /// <summary> /// 创建折线图 /// </summary> public v ...
- opencv+ linux + cmake 生成 opencv静态库
您可以省去如下步骤,直接下载我编译好的: http://download.csdn.net/detail/u011258240/9710331 一.编译opencv2.4 不带contrib 1. ...
- LeetCode 腾讯精选50题--最小栈
题目很简单,实现一个最小栈,能够以线形的时间获取栈中元素的最小值 自己的思路如下: 利用数组,以及两个变量, last用于记录栈顶元素的位置,min用于记录栈中元素的最小值: 每一次push,都比较m ...
- The method getContextPath() from the type HttpServletRequest
在做java项目开发的时候,jsp页面很容易报出这个错误. 错误的原因很多,但是都和JRE有关. 一般在导入项目的时候容易报出这个错误,主要因为JRE(jdk版本不一致). 解决方法:就是重新配置路径 ...