gpt4 book ai didi

linux - ChefDK Policyfile工作流程——如何上传第三方cookbooks?

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:12 25 4
gpt4 key购买 nike

我正在尝试通过 Chef Server 了解 Policyfile 工作流程。

到目前为止一切顺利,我正处于生成锁定文件并且“Chef 配置”正确获取配置说明书并开始收敛过程的阶段。

但是,似乎没有与 Policyfiles 等效的“berks install/berks vendor/knife upload”——在“chef push”期间,没有任何第三方 cookbook 上传到 Chef 服务器。因此,“chef provision”命令很明显失败并出现“找不到 Recipe ”错误。

这是我的策略文件的片段:

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 服务器,而其他的都没有(尽管它们在 Policyfile.lock 中被正确提及)。这是正确的行为,还是我做错了什么?

与此同时,我已经使用 Berksfile 和 knife 来上传依赖项作为一种解决方法,但这从一开始就失去了 Policyfile 的很多值(value)。

有没有办法让“大厨推送”上传第三方菜谱?

非常感谢。

更新:

我已经用 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 上传/knife 上传解决方法。

这与这个问题相关吗? https://github.com/chef/chef-dk/issues/901

最佳答案

您不能真正将角色与策略文件一起使用,因为策略本身取代了角色的概念。推送使用运行列表来知道要上传什么,运行列表中提到的任何 Recipe 或其依赖项都将被上传。在这种情况下,您可能希望将其切换到 recipe[my-book] 而不是在策略中列出这两个 Recipe ,而是将它们作为依赖项添加到 my-book/metadata.rb。查看https://yolover.poise.io/以获得更完整的演练。

关于linux - ChefDK Policyfile工作流程——如何上传第三方cookbooks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39322933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com