为什么测试厨房中的节点属性生成的dna.json没有包含在我的chef-shell执行中?

时间:2016-01-21 19:12:25

标签: chef test-kitchen chef-zero

使用以下命令,我可以让Chef-shell执行,拉入我的所有食谱和数据包:

kitchen login
cd /tmp/kitchen
sudo -E /opt/chef/embedded/bin/chef-zero -d
sudo knife cookbook upload -a -c client.rb
sudo knife upload data_bags -c client.rb
sudo -E /opt/chef/bin/chef-shell -z -c client.rb -j dna.json -o "role-web-server::default"

但是,我得到以下例外:

Chef::Exceptions::InvalidDataBagItemID
--------------------------------------
Data Bag items must have an id matching /^[\.\-[:alnum:]_]+$/, you gave: nil

Cookbook Trace:
---------------
  /tmp/kitchen/cache/cookbooks/chef-vault/libraries/chef_vault_item.rb:44:in `chef_vault_item'

... other stacktrace...

当我在nil中指定了适当的值时,chef_vault_item函数会提供.kitchen.yml值,而dna.json中的值dna.json我进入了厨师贝壳。我知道价值就在那里,因为我的常规厨房汇聚了#39;找到属性就好了。

为什么测试厨房中的节点属性生成USE ( _samples + "data\customer") SET FILTER TO myFilter() browse 未包含在我的chef-shell执行中?我是否认为让Chef-shell在Test Kitchen VM中运行是错误的?

1 个答案:

答案 0 :(得分:0)

chef-shell的-z选项不会自动涉及厨师零/本地模式系统。它早于一群,-z--client的缩写形式,只使用client.rb中的配置。您需要修改它以指向Chef Zero。

您确定要使用chef-shell吗?这听起来更像是在那里使用chef-client