2013-03-07 117 views
21

我是厨师新手,在阅读完文档后,我仍然无法理解何时使用属性以及何时使用数据包。厨师属性与数据包

什么样的数据应该存储为属性,以及应该在数据包中存储什么样的数据?

感谢

回答

24

嗯,这取决于。尽管数据包和属性都包含数据,但它们之间的主要区别在于,在运行配方时,属性会暴露为节点属性,但您没有清楚概览使用了哪些数据包(除了您通过配方运行列表)。

我个人存储的属性是什么:这里的东西(文件,程序)安装

  • 路径,创建
  • 软件版本
  • 网址,端口(从下载,服务器等听。)
  • 用户名

而且在数据包:

  • 一切,不能暴露 - 在加密的数据包(私钥密码)
  • 用户属性(名称,外壳,密码哈希,公共密钥,评论等)
  • 一些其他配置,这是更像对象,但不是简单的字符串或数字数据,这对节点本身并不重要。

关于最后一点:一个示例是maven存储库列表。存储库具有以下属性:名称,URL,策略等。对于节点配置存储库并不重要 - 重要的是它安装了maven。 另一个例子是用户,只有可用的用户名在属性中。所有其他数据都在数据包中,尽管它可能被暴露 - 在那里没有秘密数据。

+1

+1很清楚,谢谢。 – MiniQuark 2013-03-08 09:16:10

1

当然,这是其中没有简单答案的事情之一。我的经验法则是任何属于数据包的东西都属于这种情况。例如,如果您有要使用fnichol's users cookbook在节点上创建的用户和组的列表,那么这就是数据包。为了调整MySQL服务器上的参数,它是属性。