我正在尝试理解Chef Server的Policyfile工作流。
到目前为止,我已经到了生成锁文件和"chef provision“正确获取配置食谱并启动聚合过程的阶段。
然而,似乎没有与Policyfiles等同的"berks安装/ berks供应商/刀子上传“-在”厨师推送“期间,没有第三方食谱被上传到Chef服务器。因此,"chef provision“命令显然会失败,并显示”无法找到食谱“的错误。
下面是我的Policyfile的代码片段:
name "policy-test"
# Where to find external cookbooks:
default_source :supermarket
run_list "role[my-book::default]"
cookbook 'my-book', path: './cookbooks/my-book'
cookbook 'java'
cookbook 'chef-teamcity'当我运行"chef push DEV“时,只有"my-book”被上传到Chef server,而其他的都没有(尽管它们在Policyfile.lock中得到了正确的提及)。这是正确的行为,还是我做错了什么?
在此期间,我已经求助于Berksfile和刀子上传依赖项作为一种变通办法,但这从一开始就消除了拥有Policyfile的很多价值。
有没有办法让“厨师推送”上传第三方食谱?
在此之前,非常感谢您。
更新:
我已经用recipe替换了role,但它仍然不起作用:
Starting Chef Client, version 12.13.37
resolving cookbooks for run list: ["my-book::default"]
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
Missing Cookbooks:
------------------
The following cookbooks are required by the client but don't exist on the server:
* my-book仍然需要使用berks上传/刀子上传解决方法。
发布于 2016-09-06 03:06:36
您不能真正将角色与策略文件一起使用,因为策略本身取代了角色的概念。推送使用运行列表来知道要上传什么,运行列表中提到的任何食谱或其依赖项都将被上载。在这种情况下,您可能希望将其切换到recipe[my-book],而不是在策略中列出这两本食谱,而是将它们作为依赖项添加到my-book/metadata.rb中。有关更完整的演练,请查看https://yolover.poise.io/。
https://stackoverflow.com/questions/39322933
复制相似问题