Chef属性与数据包

时间:2013-03-07 14:09:04

标签: attributes chef databags

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

应将哪种数据存储为属性,以及应将哪种数据存储在数据包中?

由于

2 个答案:

答案 0 :(得分:24)

嗯,这取决于。虽然数据包和属性都包含数据,但它们之间的主要区别在于,在运行配方时属性会作为节点属性公开,但您没有清楚地了解使用了哪些数据包(除非您在运行列表)。

我个人存储在属性中的是:

  • 安装,创建某些内容(文件,程序)的路径
  • 软件版本
  • 网址,端口(从服务器上下载,等等)
  • 用户名

在数据包中:

  • 无法曝光的所有内容 - 加密数据包(私钥,密码)
  • 用户属性(名称,shell,密码哈希,公钥,注释等)
  • 其他一些配置,更像是对象,但不是简单的字符串或数字数据,对节点本身并不重要。

关于最后一点:一个例子是maven存储库列表。存储库具有属性:名称,URL,策略等。对于节点来说,配置什么存储库并不重要 - 重要的是它已经安装了maven。 另一个例子是用户,只有可用的用户名在属性中。所有其他数据都在数据包中,虽然它可以暴露 - 没有秘密数据。

答案 1 :(得分:1)

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