【问题标题】:Custom Chef Provider定制厨师提供者
【发布时间】:2014-05-15 20:24:26
【问题描述】:

专家,

我的情况是,我想使用厨师提供的资源(文件),但我想为此编写自己的提供程序,我将通过 'file' 资源的 'provider' 属性传递。

我不想编写 LWRP(资源和提供者)。我只想使用现有的资源,但提供者应该是我定义的资源。

我怎样才能只编写一个提供程序并覆盖厨师为资源提供的提供程序? 我需要使用/继承哪些类? 我应该把我的课程放在 chef-server 的什么位置?

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    所有 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,
    )
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-08
      • 2018-10-19
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多