0

使用以下命令,我可以让 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...

当我在 my 中指定了适当的值时,该值nil被提供给函数,并且它在我传递给 chef-shell 的 中。我知道值在那里,因为我的常规“厨房收敛”发现该属性很好。chef_vault_item.kitchen.ymldna.json

为什么生成的测试厨房中的节点属性dna.json未包含在我的 chef-shell 执行中?让 chef-shell 在 Test Kitchen VM 内运行,我是否完全错了?

4

1 回答 1

0

chef-shell的-z选项不会自动涉及厨师零/本地模式系统。它比那些早了很多,-z是它的简写形式,它只--client使用client.rb. 您需要将其修改为指向 Chef Zero。

你确定你的意思是使用chef-shell?这听起来更像是你的意思是在chef-client那里使用。

于 2016-01-21T23:24:56.203 回答