代码之家  ›  专栏  ›  技术社区  ›  SystematicFrank

需要自定义LWRP

  •  3
  • SystematicFrank  · 技术社区  · 11 年前

    我一直在尝试创建我的第一个lwrp

    我在以下位置创建了一个非常基本的资源+提供者:

    resources/rack_site.rb
    providers/rack_site.rb
    

    我一直试图在同一本烹饪书的食谱中测试“rack_site”资源,但它失败了,错误是找不到资源。我尝试将两个文件移动到我添加为依赖项的食谱中,但仍然失败。

    要在配方中使用自定义资源,必须做什么?

    2 回复  |  直到 11 年前
        1
  •  8
  •   sethvargo    11 年前

    厨师使用烹饪书的名称(如 metadata.rb )前缀LWRP。例如,如果你的食谱被命名为 acme-nginx ,并且您有一个名为的资源 rack_site.rb ,配方DSL中的相关LWRP为 acme_nginx_rack_site 。例如:

    acme_nginx_rack_site 'foo' do
      # ...
    end
    

    Chef将自动将对Ruby方法无效的字符转换为下划线(包括破折号)。

        2
  •  6
  •   garnertb    11 年前

    这也让我着迷。您可以通过在您的 metadata.rb 以及资源名称的下划线。例如,如果机架站点资源在Foo食谱中: foo_rack_site .

    推荐文章