Chef 自定义资源是否应该使用属性作为默认 属性 值?

Should a Chef custom resource use attributes as default property values?

Chef 自定义资源是否应使用 Chef 属性作为默认 属性 值?我可以在这里看到几个选项:

  1. 有一本纯图书馆食谱,只有自定义资源(或 LWRP),这些资源只能由使用 Chef DSL 编写食谱的人配置。
  2. 有一本图书馆食谱,其中属性的默认值可以来自 Chef 属性。这允许用户在 Chef 服务器上设置某些值,只要有使用相关资源的食谱即可。
  3. 有一本提供自定义资源的食谱,但有一个使用 Chef 属性填充所有值的默认食谱。即它只是使用属性的配方。在这种情况下,食谱(和属性)可以放在单独的食谱中,但将它们全部放在一本食谱中似乎很方便。

此处的最佳做法是什么?

我选择选项 3:https://github.com/poise/poise-monit/blob/master/chef/recipes/default.rb#L17-L22

如果必须真正全局化,我有时会直接在资源或提供程序中使用节点属性,但我只能想到少数情况。