📝 Chef教程

38篇技术文档
  Chef-测试食谱

📅  最后修改于: 2020-11-02 03:22:04        🧑  作者: Mango

如果菜谱直接部署并在生产服务器上运行,则菜谱很有可能在生产中中断。防止这种情况发生的最佳方法是在设置环境中测试菜谱。以下是测试步骤。步骤1-使用以下命令安装食谱。步骤2-在工作食谱上运行刀具食谱测试命令。步骤3-破坏食谱中的内容并再次测试。步骤4-再次运行刀具测试命令。工作方式刀具食谱测试对食谱中的所有Ruby文件以及所有ERB模板执行Ruby语法检查。它循环遍历Ruby文件并针对每个文件运行Ru...

  Chef-美食评论家

📅  最后修改于: 2020-11-02 03:22:25        🧑  作者: Mango

毫无问题地编写好的食谱是一项艰巨的任务。但是,有些方法可以帮助您确定陷阱。可以在Chef Cookbook中进行标记。食品评论家是将其存档的最佳方法之一,它试图识别食谱的逻辑和样式可能存在的问题。美食评论家步骤1-添加Foodcritic宝石。步骤2-安装宝石。食品批评宝石步骤1-在食谱上运行Foodcritic。步骤2-生成详细的报告。工作方式Foodcritic定义了一组规则并检查配方代理,每...

  Chef-ChefSpec

📅  最后修改于: 2020-11-02 03:22:49        🧑  作者: Mango

测试驱动开发(TDD)是一种在编写任何实际配方代码之前编写单元测试的方法。该测试应该是真实的,并且应该验证配方的作用。它实际上应该失败,因为没有开发任何配方。一旦制定了配方,则测试将通过。ChefSpec基于流行的RSpec框架构建,并提供了用于测试Chef配方的量身定制的语法。创建ChefSpec步骤1-创建一个包含chefSpec gem的gem文件。步骤2-安装宝石。步骤3-创建规格目录。步...

  Chef-带测试厨房的测试食谱

📅  最后修改于: 2020-11-02 03:23:13        🧑  作者: Mango

测试厨房是Chef的集成测试框架。它支持编写测试,该测试在使用菜谱实例化和融合VM之后运行。这些测试在VM上运行,并且可以验证一切是否按预期进行。这是ChefSpec的节点合同,ChefSpec仅模拟Chef运行。测试厨房启动一个真实节点并在其上运行Chef。配置为此,我们需要在计算机上安装Vagrant,这有助于管理虚拟机。然后,我们需要安装书架并与Vagrant挂钩,以管理菜谱依赖。步骤1-在...

  Chef-节点

📅  最后修改于: 2020-11-02 03:23:33        🧑  作者: Mango

刀前检查显示有关使用特定食谱的所有节点的详细信息,然后再将其上载到Chef服务器。入门为了开始,我们需要安装预检宝石。步骤1-在gem文件中定义路径。步骤2-运行捆绑器以安装刀前检查宝石。工作方式在给定的菜谱上运行小刀预检。我们可以运行preflight命令来查找哪些节点和角色在其扩展的运行列表中具有给定的食谱。在节点上执行食谱的方法有多种。您可以通过将食谱添加到节点的运行列表中,直接将食谱分配给...

  Chef-Chef客户运行

📅  最后修改于: 2020-11-02 03:23:52        🧑  作者: Mango

为了测试Chef-Client运行,我们需要将Chef-Client配置为使用托管的Chef或自己的托管服务器。在调试模式下运行Chef-Client检查上一次Chef-Client运行的结果为了在开发新食谱时检查上一次Chef-Client运行,特别是失败问题,我们需要知道到底出了什么问题。即使Chef在stdout中打印所有内容,您可能还是想再次查看调试日志。如果要进行测试,则需要准备一本破烂...

  Chef-动态配置食谱

📅  最后修改于: 2020-11-02 03:24:10        🧑  作者: Mango

属性是用于动态配置食谱的关键组件。使用属性,作者可以使菜谱可配置。通过覆盖菜谱中设置的默认值,用户可以注入自己的值。步骤1-为食谱属性创建默认文件,并向其添加默认属性。步骤2-在配方内定义属性。步骤3-上传修改后的食谱。步骤4-运行已定义节点的Chef-Client。工作方式Chef在执行属性之前从属性文件加载所有属性。属性与节点对象一起存储。可以访问配方中与节点对象一起存储的所有属性,并检索它们...

  Chef-模板

📅  最后修改于: 2020-11-02 03:24:27        🧑  作者: Mango

在基础架构中,配置管理是关于如何配置主机的全部内容。通常,所有配置都是使用配置文件完成的。 Chef使用模板能够用动态值填充配置文件。Chef提供模板作为可在配方中使用的资源。配置文件的动态值可以从数据包,属性中检索,甚至可以通过将其传递到模板中进行计算。如何使用它?步骤1-将模板添加到配方。步骤2-添加ERB模板文件。步骤3-将修改后的食谱上传到Chef服务器。步骤4-验证上传文件的内容。工作流...

  Chef-带DSL的普通Ruby

📅  最后修改于: 2020-11-02 03:24:45        🧑  作者: Mango

在Chef中,如果需要创建简单的配方,则可以使用Chef中可用的资源,例如模板,remote_file和服务。但是,随着配方的复杂化,人们需要先进的技术,例如条件语句以按条件执行配方的某些部分。这是将纯Ruby与Chef Domain Specific Language(DSL)混合的功能。如何使用它?在客户端模式下的任何节点上启动Chef Shell,以能够访问Chef服务器。Chef DSL的...

  Chef-食谱的红宝石

📅  最后修改于: 2020-11-02 03:25:01        🧑  作者: Mango

食谱是食谱的关键组成部分,食谱基本上是Ruby代码。可以在Chef食谱中使用所有Ruby语言功能。大多数时候,Ruby内置功能就足够了,但有时可能需要使用其他Ruby gem。例如,如果需要从配方本身访问MySQL数据库。厨师配方能够获取所需的Ruby宝石,以便在相同的配方中使用它们。在给定的配方中使用iptable Gem步骤1-编辑食谱的默认食谱,并在食谱中安装要使用的宝石。步骤2-将修改后的...

  Chef-图书馆

📅  最后修改于: 2020-11-02 03:25:19        🧑  作者: Mango

Chef中的库提供了一个封装已编译逻辑的地方,从而使菜谱食谱保持整洁。创建图书馆步骤1-在Cookbook的库中创建一个辅助方法。步骤2-使用辅助方法。步骤3-将修改后的食谱上传到Chef Server。测试库工作方式Chef库代码可以打开Chef :: Recipe类,并按照步骤1中的步骤添加新方法。此步骤不是最干净的方法,而是最简单的方法。最佳实践一旦打开cook :: recipe类,就会对...

  Chef-定义

📅  最后修改于: 2020-11-02 03:25:37        🧑  作者: Mango

定义可以定义为对资源进行分组的逻辑方法,这些方法可以一次又一次地使用。在此流程中,我们对资源进行分组并为其命名,以重新获得已定义食谱的可读性。为了做到这一点,我们应该有一个食谱。在这种情况下,我们使用test_cookbook和节点的运行列表,其中包括菜谱。创建定义步骤1-在cookbooks定义文件夹中创建一个新的定义文件。步骤2-在食谱默认食谱中使用定义。步骤3-将食谱上载到厨师服务器。步骤4...

  Chef-环境变量

📅  最后修改于: 2020-11-02 03:25:54        🧑  作者: Mango

环境变量是使Chef配方成功在任何特定节点上运行的关键方法。有多种方法可以执行此操作,可以手动设置它们,也可以使用Shell脚本。我们需要在此处通过配方设置它们。为此,我们需要在此处准备一本食谱,以便使用test_cookbook和一个包含test_cookbook的运行清单。使用厨师食谱设置环境变量步骤1-使用环境变量更新食谱的默认配方。步骤2-将更新的食谱上传到服务器。步骤3-运行Chef客户...

  Chef-数据袋

📅  最后修改于: 2020-11-02 03:26:14        🧑  作者: Mango

厨师数据包可以定义为可以与食谱一起使用的任意数据集合。当人们不希望在食谱中对属性进行硬编码或在食谱中存储属性时,使用数据袋非常有用。工作方式在以下设置中,我们尝试与http端点URL通信。为此,我们需要创建一个数据包,其中将保存端点URL详细信息并将其用于我们的配方中。步骤1-为我们的数据包创建目录。步骤2-为请求容器创建一个数据袋项目。需要确保使用的是已定义的requestBin URL。步骤3...

  Chef-数据袋脚本

📅  最后修改于: 2020-11-02 03:26:38        🧑  作者: Mango

在某些情况下,不可能将服务器置于Chef的完全控制之下。在这种情况下,可能需要从脚本访问Chef数据包中的值。为此,需要将数据包值存储在JSON文件中,并让添加的脚本访问这些值。为此,需要准备一本食谱。在我们的例子中,我们将更早使用test_cookbook,并且应该在其中包含test_cookbook定义的节点的运行列表中。工作方式步骤1-创建一个数据包。步骤2-创建一个数据袋项目。步骤3-更新...