通过使用以下命令,我可以让厨师-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中指定了一个适当的值,并且它在传递给厨师-shell的dna.json中时。我知道这里有价值,因为我经常的“厨房会聚”发现这个属性很好。
为什么Test生成的dna.json中的节点属性没有包含在我的厨师-shell执行中?让厨师壳在中运行是错误的吗?
发布于 2016-01-21 23:24:56
厨师-外壳的-z选项不会自动涉及厨师零/本地模式系统。它先于一堆,-z是--client的简短形式,它只使用client.rb中的配置。你需要修改它来指向零主厨。
您确定要使用chef-shell吗?听起来更像是要在那里使用chef-client。
https://stackoverflow.com/questions/34932386
复制相似问题