寻找可用于多个资源输入的 Chef 数据包 json 结构

Looking for Chef data bag json structure that will work with multiple resource inputs

我需要从特定版本的数据包中添加多个包。到目前为止,我有一个与包资源一起使用的数据包:

{
  "id": "server_apps",
  "apps": [
   "vim",
   "tmux",
   "ntop"
 ]
}

配方代码:

server_apps = data_bag_item('linapps','server_apps')
package server_apps['apps']

但我不确定 json 结构在数据包中安装特定版本的包时会是什么样子 - 例如单个包的工作方式如下:

package 'vim' do          
  version '7.4.160-1.el7'
end

但是不确定如何在可重复的 json 哈希中指定它...关于如何使这项工作有任何想法吗?

没有具体的结构,你可能想要的是这样的:

package server_apps['apps'].keys do
  version server_apps['apps'].values
end

并将其从数组更改为散列,例如像下面这样:

{
  "id": "server_apps",
  "apps": {
   "vim": "7.4.160-1.el7",
   "tmux": "1.2.3",
   "ntop": "0.0.1"
  }
}