Chef infra 需要自定义LWRP
我一直在尝试创建我的第一个lwrp 我在以下位置创建了一个非常基本的资源+提供商:Chef infra 需要自定义LWRP,chef-infra,lwrp,Chef Infra,Lwrp,我一直在尝试创建我的第一个lwrp 我在以下位置创建了一个非常基本的资源+提供商: resources/rack_site.rb providers/rack_site.rb 我一直试图在同一本烹饪书的菜谱中测试“rack_site”资源,但失败了,出现了一个关于未找到资源的错误。我尝试将这两个文件移动到一个我添加为依赖项的cookbook中,但仍然失败 要将自定义资源用于配方,必须做些什么?这也让我感到困惑。您可以通过在metadata.rb中的cookbook名称前面加上下划线来访问LWR
resources/rack_site.rb
providers/rack_site.rb
我一直试图在同一本烹饪书的菜谱中测试“rack_site”资源,但失败了,出现了一个关于未找到资源的错误。我尝试将这两个文件移动到一个我添加为依赖项的cookbook中,但仍然失败
要将自定义资源用于配方,必须做些什么?这也让我感到困惑。您可以通过在
metadata.rb中的cookbook名称前面加上下划线来访问LWRP。例如,如果框架站点资源位于Foo cookbook中:Foo\u rack\u站点
厨师使用该cookbook的名称(定义见metadata.rb
)作为LWRPs的前缀。例如,如果您的烹饪书名为acme nginx
,并且您有一个名为rack\u site.rb
的资源,则配方DSL中关联的LWRP是acme\u nginx\u rack\u site
。例如:
acme\u nginx\u机架\u站点“foo”do
# ...
结束
Chef将自动将对Ruby方法无效的字符转换为下划线(包括破折号)。如果您不希望LWRP以cookbook名称作为前缀(大多数“重量级”资源的惯例是这样),则可以使用提供的方法指定较短的名称。在上述情况下,将提供:rack_site
添加到资源文件和提供程序文件的顶部即可。