Chef 资源和提供者之间的区别

Chef difference between resources and providers

我已经通过 Chef 文档找出 - 资源和提供者之间的确切区别,但不幸的是我无法理解两者的功能方面或它们到底在做什么。

有人可以吗。用更简单的术语解释,一个例子真的很棒。谢谢

我在其中一个食谱文件中看到了以下内容

jboss10_dev "dev"  do
                    action :update
                        provider "jboss10dev_jboss_update"
                end

我不知道它的作用。

好的,如约更长的回答。粗略地说,资源是一种值类型。它包含描述事物状态的所有数据,无论是期望状态还是当前状态。 Provider 实现了动作逻辑,即承诺理论下的代理行为。或者基本上,资源是 "what",提供者是 "how"。也就是说,使用自定义资源语法我们模糊了很多界限,因为您似乎在资源中声明操作代码,它实际上只是非常安静地为您构建一个提供者。