使用以下命令,我可以让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中运行是错误的?
答案 0 :(得分:0)
chef-shell的-z
选项不会自动涉及厨师零/本地模式系统。它早于一群,-z
是--client
的缩写形式,只使用client.rb
中的配置。您需要修改它以指向Chef Zero。
您确定要使用chef-shell
吗?这听起来更像是在那里使用chef-client
。