寻找可与多种资源输入一起使用的Chef数据包json结构

时间:2017-06-12 14:30:37

标签: json chef chef-recipe

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

{
  "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哈希中指定...但有关如何使其工作的任何想法?

1 个答案:

答案 0 :(得分:2)

没有特定的结构,你可能想要的是这样的:

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"
  }
}
相关问题