专家,
我处在一种情况,我想使用厨师提供的资源(文件),但我想写一个我自己的提供者,我将通过提供商' '文件'的属性资源。
我不想写LWRP(资源和提供者)。我只想使用那里的资源,但提供者应该是我定义的那个。
如何编写提供程序并覆盖chef为资源提供的提供程序? 我需要使用/继承哪些类? 我在哪里把课程放在厨师服务器上?
答案 0 :(得分:0)
所有Chef资源都响应资源声明中的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,
)
然后使用正常的资源,但厨师将做正确的事情"遇到给定的平台时。