可以使用厨师环境json来替换数据包项吗?

时间:2017-10-02 16:31:13

标签: chef chef-solo

环境非常适合覆盖默认行为,数据标记非常适合从cookbook中抽取数据并使其尽可能通用。

我在每个开发阶段都有一个环境json文件:devqastaging,我有数据包,我可能会根据环境进行更改。在多个目录中定义这些内容对我来说似乎是多余的,特别是因为我在local mode中使用了厨师。

有没有办法在chef环境json文件中定义自定义属性?如果是这样:我如何在食谱中访问它们?

note :我已经熟悉环境json的override_attributes属性。我想知道自定义json,如何访问它,或者可能是更好的解决方案?

例如

{
  "name": "dev",
  "default_attributes": {},
  "json_class": "Chef::Environment",
  "my_custom_object" : {"key1":"value1", ...}
  "chef_type": "environment"
}

1 个答案:

答案 0 :(得分:1)

不,你不能这样做。 Chef对象上的模式很小(即只允许哪些顶级键)但是已修复。您将任意数据附加到环境的唯一位置是节点属性或(在技术上但可能不这样做)作为描述字符串中的编码数据。也就是说,节点属性就是你所描述的,所以我不完全确定为什么你认为那些不是解决方案(正如我提到的其他删除的答案)。我已经对如何使用节点属性有疑问我会问这个问题或者问Slack:)