Chef 组件
Posted yuxiaohao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 组件的主要内容,如果未能解决你的问题,请参考以下文章