我是Chef的新手,我正在尝试使用“chef provisioning”在我的vsphere节点上配置VM。
当我执行以下
时chef-client -z -o 'my_company::vsphere' 'my_company::test_cluster'
我收到以下错误:
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
Missing Cookbooks:
------------------
No such cookbook: firewall
在做了一些研究之后,我遇到了这个问题和讨论:Why can't chef resolve my cookbooks?
这里Tejay Cardon提到应该在knife.rb中的cookbook_path配置中调出berks路径(至少我是如何解释它的)。我添加了它,现在我的文件看起来像这样:
# See https://docs.getchef.com/config_rb_knife.html for more information on knife configuration options
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name "empl1234"
client_key "#{current_dir}/empl1234.pem"
chef_server_url "https://my_chef_box/organizations/my_org"
cookbook_path ["#{current_dir}/../cookbooks", "C:/Users/empl1234/.berkshelf/cookbooks"]
当我运行上面列出的命令时,我仍然会遇到同样的错误。
正如我上面提到的,我正在学习厨师,所以如果答案很明显,请善待它。我已经做了很多谷歌搜索,所以如果答案是“谷歌它!我得到你需要的确切页面作为第一个链接”,那么请给我条款谷歌。 :)谢谢!
答案 0 :(得分:3)
显然我读得不够近。答案是使用以下命令导出所有依赖项:
berks vendor path_to_hold_cookbooks
然后将 path_to_hold_cookbooks 作为cookbook_path放入.chef / knife.rb