厨师测试厨房和政策文件

Chef test kitchen and policyfiles

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

MyCookbook
|--attributes
|--recipes
|--templates
|--spec
|--policyfiles
|   |- a.rb
|   |- b.rb
|--other files.

我的问题是我必须用 Kitchen 测试那些 a.rb 和 b.rb 策略文件,所以我尝试使用 chef_zero 没有任何幸运地阅读了这些策略文件,然后尝试 policyfile_zero 作为厨房供应商...在这种情况下,它可以读取策略文件锁定文件(例如,a.lock.json) 但前提是放在菜谱根目录下,重命名为 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

这不仅有效,而且会自动 chef 安装 策略文件,在策略文件路径中创建一个新的锁定文件,并在不重命名到配置的机器的情况下应用它。