【问题标题】:Chef test kitchen and policyfiles厨师测试厨房和政策文件
【发布时间】:2017-03-15 11:45:05
【问题描述】:

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

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

我的问题是我必须用 Kitchen 测试那些 a.rb 和 b.rb 策略文件,所以我尝试使用 chef_zero 没有任何运气阅读这些策略文件,然后尝试 policyfile_zero 作为 Kitchen 供应商...在这种情况下,它可以读取策略文件锁定文件(例如,a.lock.json),但前提是它被放置在食谱根目录中并重命名为 Policyfile.lock.json

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

【问题讨论】:

    标签: chef-infra test-kitchen policyfiles


    【解决方案1】:

    所以回答我自己的问题,发现做了进一步的随机试验和错误,这似乎是我使用 chef_zero 并告诉它策略文件在哪里的问题。

    以前使用 policyfile_zero 配置器,厨师厨房的套件结构可能如下:

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

    这行不通。但是现在的语法是:

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

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

    【讨论】:

    • 很抱歉,Test Kitchen 的最新版本重新添加了向后兼容的旧名称。
    • 这对我不起作用。 Reason: (CookbookOmnifetch::NotACookbook) The resource at '/home/myhome/cookbooks/my_cookbook/policyfiles' does not appear to be a valid cookbook. Does it have a metadata.rb?
    • 糟糕,必须更改 Policyfile 中的路径! cookbook 'my_cookbook', path: '..'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2021-04-21
    • 1970-01-01
    相关资源
    最近更新 更多