Chef infra 厨师长测试厨房和文件

Chef infra 厨师长测试厨房和文件,chef-infra,test-kitchen,policyfiles,Chef Infra,Test Kitchen,Policyfiles,这是我目前的情况,我有一本内部git回购的食谱。在那本食谱中,我必须保留几个策略文件并对它们进行测试,为此我在食谱中创建了一个名为policyfiles的目录,如下所示: MyCookbook |--attributes |--recipes |--templates |--spec |--policyfiles | |- a.rb | |- b.rb |--other files. 我的问题是,我必须用Kitchen测试这些a.rb和b.rb策略文件,所以我尝试使用chef_zero

这是我目前的情况,我有一本内部git回购的食谱。在那本食谱中,我必须保留几个策略文件并对它们进行测试,为此我在食谱中创建了一个名为policyfiles的目录,如下所示:

MyCookbook
|--attributes
|--recipes
|--templates
|--spec
|--policyfiles
|   |- a.rb
|   |- b.rb
|--other files.
我的问题是,我必须用Kitchen测试这些a.rb和b.rb策略文件,所以我尝试使用chef_zero而没有阅读这些策略文件,然后尝试policyfile_zero作为厨房供应员。。。在这种情况下,它可以读取policyfile锁文件(例如,a.lock.json),但前提是该文件位于cookbook根目录中并重命名为policyfile.lock.json


这是非常笨重和不实用的,谁能提供一些关于如何使用Kitchen在本地测试策略文件的见解?我不敢相信这是唯一的方法。

因此,在回答我自己的问题时,我发现做了进一步的随机试验和错误,这似乎是我使用chef_zero并告诉它保单文件在哪里的方式的一个问题

在之前的policyfile_zero provisioner中,厨师厨房套房的结构可能如下所示:

suites:
  - name: MySuite
    provisioner:
      policyfile: policyfiles/a.rb
这是行不通的。但是,现在的语法是:

suites:
  - name: MySuite
    provisioner:
      policyfile_path: policyfiles/a.rb

这不仅有效,还可以自动安装policyfile,在policyfile路径中创建一个新的锁文件,并在不重命名已设置计算机的情况下将其应用。

很抱歉,Test Kitchen的最新版本为向后兼容重新添加了旧名称。这对我不起作用<代码>原因:(CookbookOmnifetch::NotCookbook)位于“/home/myhome/cookbooks/my_cookbook/policyfiles”的资源似乎不是有效的cookbook。它有一个metadata.rb吗?Oops,我要更改策略文件中的路径<代码>食谱“我的食谱”,路径:“…”