【问题标题】:where can I find the chef's core resources?在哪里可以找到厨师的核心资源?
【发布时间】:2017-05-02 05:17:24
【问题描述】:

我对厨师很陌生,我使用的厨师版本是

  [root@localhost ~]# chef --version
  Chef Development Kit Version: 1.3.43
  chef-client version: 12.19.36
  delivery version: master (dd319aa632c2f550c92a2172b9d1226478fea997)
  berks version: 5.6.4
  kitchen version: 1.16.0

当我使用

创建食谱时
   knife cookbook create COOKBOOK #I'm able to see libraries directory

而如果使用

创建食谱
   chef generate cookbook COOKBOOK #I'm unable to find libraries directory

现在我的问题是我想为自己创建自定义资源,我必须在哪里存储我的自定义资源?

我可以将它们存储在厨师的核心资源目录中吗?如果是,那么如何找到主厨的核心资源目录?

谢谢

【问题讨论】:

    标签: resources chef-infra


    【解决方案1】:

    自定义资源位于食谱的 resources/ 文件夹中。您无法编辑核心资源,因为它们位于 Chef 代码库中,而不是您的食谱中。

    【讨论】:

    • 我的意思是,如果您认为它足够重要,可以包含在核心中,您可以在 GitHub 上 fork chef/chef 存储库并向我们发送拉取请求。这不是我希望新用户立即做的事情。
    • 我想将它们转移到厨师代码库的原因是:每当我创建一个新的食谱时,我每次创建一个新的食谱时都必须将它们复制到资源中。我不想每次创建新食谱时都复制它们。我希望将它们放置在一般位置,然后继续制作食谱并享受
    • 菜谱可以依赖于其他菜谱,因此您可以将它们放在一些基础库菜谱中,然后在您的其他菜谱中依赖它。
    • 请告诉我如何创建基础库食谱并告诉厨师这是我的基础库食谱?
    • 它就像任何其他食谱一样,除了您对使用它们的看法之外没有什么特别之处。要依赖其他人的食谱,请将depends "othername" 添加到metadata.rb
    【解决方案2】:

    通常自定义资源位于resources 目录下。

    但是,如果您需要编写帮助程序,library 仍将被使用。

    自定义资源的主厨文档:https://docs.chef.io/custom_resources.html 更深入的信息可以在这里找到:https://docs.chef.io/dsl_custom_resource.html

    可以在此处通过集成测试找到自定义资源使用示例https://github.com/sous-chefs/samba

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多