使用以下命令,我可以让 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.yml
dna.json
为什么生成的测试厨房中的节点属性dna.json
未包含在我的 chef-shell 执行中?让 chef-shell 在 Test Kitchen VM 内运行,我是否完全错了?