如何将厨师配置与厨师零配合使用包含依赖关系的配方?

时间:2016-09-30 20:49:05

标签: chef berkshelf chef-zero chef-provisioning

我是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"]

当我运行上面列出的命令时,我仍然会遇到同样的错误。

正如我上面提到的,我正在学习厨师,所以如果答案很明显,请善待它。我已经做了很多谷歌搜索,所以如果答案是“谷歌它!我得到你需要的确切页面作为第一个链接”,那么请给我条款谷歌。 :)谢谢!

1 个答案:

答案 0 :(得分:3)

显然我读得不够近。答案是使用以下命令导出所有依赖项:

berks vendor path_to_hold_cookbooks

然后将 path_to_hold_cookbooks 作为cookbook_path放入.chef / knife.rb