我试图创建我的第一个lwrp
我在:
创建了一个非常基本的资源+提供者resources/rack_site.rb
providers/rack_site.rb
我一直在尝试在同一个食谱的配方中测试'rack_site'资源,但是它失败并显示有关未找到资源的错误。我尝试将这两个文件移动到我作为依赖项添加的食谱中,但仍然失败。
将自定义资源用于配方需要做些什么?
答案 0 :(得分:8)
Chef使用cookbook的名称(在metadata.rb
中定义)来为LWRP添加前缀。例如,如果您的食谱被命名为acme-nginx
,并且您有一个名为rack_site.rb
的资源,则食谱DSL中的关联LWRP为acme_nginx_rack_site
。例如:
acme_nginx_rack_site 'foo' do
# ...
end
Chef会自动将对Ruby方法无效的字符转换为下划线(包括破折号)。
答案 1 :(得分:6)
这也让我受益匪浅。您可以通过将metadata.rb
中的cookbook名称和下划线添加到资源名称来访问LWRP。例如,如果机架站点资源位于Foo cookbook中:foo_rack_site
。