Linux ChefDK Policyfile工作流-如何上载第三方食谱?
我正试图通过Chef Server了解Policyfile工作流 到目前为止还不错,我已经到了生成锁文件和“厨师供应”正确选择供应食谱并启动converge过程的时候了 然而,似乎没有与Policyfiles相当的“berks安装/berks供应商/knife上载”——在“厨师推送”期间,没有第三方烹饪书上载到厨师服务器。因此,“chef provision”命令明显失败,出现“找不到烹饪书”错误 以下是我的保单文件的片段:Linux ChefDK Policyfile工作流-如何上载第三方食谱?,linux,macos,chef-infra,Linux,Macos,Chef Infra,我正试图通过Chef Server了解Policyfile工作流 到目前为止还不错,我已经到了生成锁文件和“厨师供应”正确选择供应食谱并启动converge过程的时候了 然而,似乎没有与Policyfiles相当的“berks安装/berks供应商/knife上载”——在“厨师推送”期间,没有第三方烹饪书上载到厨师服务器。因此,“chef provision”命令明显失败,出现“找不到烹饪书”错误 以下是我的保单文件的片段: name "policy-test" # Where to find
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”时,只有“我的书”被上传到chef服务器,但其他的都不会(尽管它们在Policyfile.lock中得到了正确的提及)。这是正确的行为,还是我做错了什么
与此同时,我已经求助于Berksfile和knife来上传依赖项作为一种解决方法,但这从一开始就让Policyfile失去了很多价值
有没有办法让“厨师推送”上传第三方食谱
非常感谢
更新:
我已将角色替换为recipe,但它仍然不起作用:
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 upload/knife upload解决方案
这与这个问题有关吗 您不能将角色与策略文件一起使用,因为策略本身取代了角色的概念。推送使用运行列表来知道要上传什么,运行列表中提到的任何烹饪书或其依赖项都将被上传。在这种情况下,您可能希望将其切换到
recipe[my book]
,而不是在策略中列出这两本食谱,而是将它们作为依赖项添加到my book/metadata.rb
中。查看更完整的演练。您喜欢策略文件吗?我个人更喜欢创建特定于应用程序的环境,并使用“berks apply”来确定cookbook版本。(请参阅:)@MarkO'Connor某种程度上-使用chef配置来加速ec2实例和所有jazz。对,因此使用角色基本上打破了基于策略的依赖解析。谢谢它没有坏,只是不能一起使用。这是设计的。