【问题标题】:Testing chef data bags测试厨师数据包
【发布时间】:2017-03-08 22:52:45
【问题描述】:

我需要测试厨师食谱。这是使用数据包。

kitchen 正在使用chef_zero 来配置机器。因此,它无法将我的数据包托管在服务器上。然后它告诉我我的数据包不可用。

如何在测试厨房获得数据包?

我在test\integration\data_bags 上创建了一个aws.json 文件:

{
  "id": "dev",
  "aws_access_key_id": "----",
  "aws_secret_access_key": "----"
}

当我执行收敛时,我收到以下消息:

信息:HTTP 请求返回 404 Not Found:找不到对象:chefzero://localhost:8889/data/aws/dev

错误:无法加载数据包项:“aws”“dev”

.kitchen.yml文件内容:

---
driver:
  name: vagrant

provisioner:
  name: chef_zero
  always_update_cookbooks: true

verifier:
  name: inspec

platforms:
  - name: ubuntu-16.04
  - name: centos-7.2

suites:
  - name: default
    data_bags_path: "test/integration/data_bags"
    run_list:
      - recipe[living-development::default]
    verifier:
      inspec_tests:
        - test/smoke/default
    attributes:

版本:

$ vagrant -v
1.9.2

$ chef -v
Chef Development Kit Version: 1.2.22
chef-client version: 12.18.31
delivery version: master (0b746cafed65a9ea1a79de3cc546e7922de9187c)
berks version: 2017-03-08T11:19:04.643719 5824] 2017-03-08T11:19:04.643719 5824] 2017-03-08T11:19:04.643719 5824] 2017-03-08T11:19:04.643719 5824] 2017-03-08T11:19:04.700789 5824] 2017-03-08T11:19:04.700789 5824] 5.6.0
kitchen version: 1.15.0

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    服务器错误表明正在搜索名为 aws/dev 的内容(其中 aws 是数据包的名称,dev 是该数据包中项目的名称)。

    因此,您必须将 JSON 文件放在 test/integration/data_bags/aws/dev.json 下。

    顺便说一句。您不必手动指定 data_bags_path,因为 test-kitchen 将在此路径中搜索项目。

    【讨论】:

    • 谢谢@StephenKing。据我所知,您是在建议我删除data_bags_path?我已经在没有指定 data_bags_path 的情况下对其进行了测试,但它一直失败......
    • 不需要指定默认值 :) 您可以查看我们的存储库,例如 this one。但你真正的问题是你需要一个名为aws 的文件夹和一个名为dev.json 的文件。不是名为 aws.json 的文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 2013-02-22
    • 2017-03-15
    • 1970-01-01
    相关资源
    最近更新 更多