Chef 'package' 资源作为 LWRP

Chef 'package' resource as LWRP

我想扩展 'package' 资源并将其作为 LWRP 提供 - cookbookname_package 以便从其他食谱中调用。

是否需要手动重写从 package resourcecookbookname/resources/package.rb 的所有属性?

有没有一种方法可以简单地从 Chef 源代码中获取现有的,或者是否只有一种方法可以作为翻译器并维护所有这些?

  allow_downgrade            TrueClass, FalseClass # Yum, RPM packages only
  arch                       String, Array # Yum packages only
  default_release            String # Apt packages only
  flush_cache                Array
  gem_binary                 String
  homebrew_user              String, Integer # Homebrew packages only
  notifies                   # see description
  options                    String
  package_name               String, Array # defaults to 'name' if not specified
  provider                   Chef::Provider::Package
  response_file              String # Apt packages only
  response_file_variables    Hash # Apt packages only
  source                     String
  subscribes                 # see description
  timeout                    String, Integer
  version                    String, Array
  action                     Symbol # defaults to :install if not specified

不,LWRP DSL 不允许子类化。您需要将文件放在 libraries/ 下并编写 Plain Old Ruby 代码。