2014-05-15 272 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, 
) 

然後用使用該資源正常,但遇到給定的平臺時,廚師會「做正確的事」。