3

我被困在试图创建我的第一个 lwrp

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

resources/rack_site.rb
providers/rack_site.rb

我一直在尝试在同一本食谱的食谱中测试“rack_site”资源,但由于找不到资源的错误而失败。我尝试将这两个文件移动到我作为依赖项添加的食谱中,但仍然失败。

必须做什么才能将自定义资源用于配方?

4

2 回答 2

8

Chef 使用说明书的名称(定义在 中metadata.rb)作为 LWRP 的前缀。例如,如果您的食谱名为acme-nginx,并且您有一个名为 的资源rack_site.rb,则配方 DSL 中关联的 LWRP 为acme_nginx_rack_site。例如:

acme_nginx_rack_site 'foo' do
  # ...
end

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

于 2014-03-08T22:11:54.193 回答
6

这也吸引了我。metadata.rb您可以通过在资源名称前面加上食谱名称和下划线来访问 LWRP 。例如,如果机架站点资源在 Foo 食谱中:foo_rack_site.

于 2014-03-08T19:19:30.797 回答