2014-05-15 185 views
0

专家,自定义厨师提供

我在哪里我想使用由厨师提供的资源(文件)的情况,但我想写我自己对于供应商,我将与'商'属性传递文件'资源。

我不想写一个LWRP(资源和提供者)。我只想使用那里的资源,但提供者应该是我定义的资源。

我该如何编写一个提供程序并覆盖厨师为资源提供的提供程序? 我需要使用/继承哪些类? 我在哪里把我的课放在厨师服务器上?

回答

0

所有厨师资源应对在资源声明中provider属性:

file '/path/to/file' do 
    provider My::Custom::Provider 
end 

注意,这是实际的类,而不是字符串或符号。另外,如果你想提供商要在特定平台上使用,你可以使用Chef::Platform.set

Chef::Platform.set(
    resource: :file, 
    provider: My::Custom::Provider, 
    platform: :windows, 
) 

然后用使用该资源正常,但遇到给定的平台时,厨师会“做正确的事”。