我被困在试图创建我的第一个 lwrp
我在以下位置创建了一个非常基本的资源 + 提供者:
resources/rack_site.rb
providers/rack_site.rb
我一直在尝试在同一本食谱的食谱中测试“rack_site”资源,但由于找不到资源的错误而失败。我尝试将这两个文件移动到我作为依赖项添加的食谱中,但仍然失败。
必须做什么才能将自定义资源用于配方?
我被困在试图创建我的第一个 lwrp
我在以下位置创建了一个非常基本的资源 + 提供者:
resources/rack_site.rb
providers/rack_site.rb
我一直在尝试在同一本食谱的食谱中测试“rack_site”资源,但由于找不到资源的错误而失败。我尝试将这两个文件移动到我作为依赖项添加的食谱中,但仍然失败。
必须做什么才能将自定义资源用于配方?
Chef 使用说明书的名称(定义在 中metadata.rb
)作为 LWRP 的前缀。例如,如果您的食谱名为acme-nginx
,并且您有一个名为 的资源rack_site.rb
,则配方 DSL 中关联的 LWRP 为acme_nginx_rack_site
。例如:
acme_nginx_rack_site 'foo' do
# ...
end
Chef 会自动将对 Ruby 方法无效的字符转换为下划线(包括破折号)。
这也吸引了我。metadata.rb
您可以通过在资源名称前面加上食谱名称和下划线来访问 LWRP 。例如,如果机架站点资源在 Foo 食谱中:foo_rack_site
.