为什么生成的测试厨房中的节点属性 dna.json 未包含在我的 chef-shell 执行中?
Why are the node attributes in the Test Kitchen generated dna.json not being included in my chef-shell execution?
使用以下命令我可以让 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
中进入主厨-shell。我知道这个值在那里,因为我的常规 'kitchen converge' 发现该属性很好。
为什么生成的测试厨房中的节点属性 dna.json
未包含在我的 chef-shell 执行中?我在 Test Kitchen VM 中将 chef-shell 设置为 运行 是不是完全错误?
chef-shell 的 -z
选项不会自动涉及 chef zero/local-mode 系统。它早于那些,-z
是 --client
的缩写形式,它只使用 client.rb
中的配置。您需要修改它以指向 Chef Zero。
您确定要使用 chef-shell
吗?听起来更像是你想在那里使用 chef-client
。
使用以下命令我可以让 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
中进入主厨-shell。我知道这个值在那里,因为我的常规 'kitchen converge' 发现该属性很好。
为什么生成的测试厨房中的节点属性 dna.json
未包含在我的 chef-shell 执行中?我在 Test Kitchen VM 中将 chef-shell 设置为 运行 是不是完全错误?
chef-shell 的 -z
选项不会自动涉及 chef zero/local-mode 系统。它早于那些,-z
是 --client
的缩写形式,它只使用 client.rb
中的配置。您需要修改它以指向 Chef Zero。
您确定要使用 chef-shell
吗?听起来更像是你想在那里使用 chef-client
。