Chef包资源可以接受数据包吗?

时间:2017-06-04 12:53:30

标签: chef chef-recipe

我有一组软件包可以很好地添加到数据包中以便安装它们。是否可以将包资源与数据包一起使用?

编辑:例如 - 这就是我用巧克力资源做的事情:

workstation_apps = data_bag_item('winapps','desktop_apps')

chocolatey_package workstation_apps['apps']

这是数据包结构:

{
  "id": "desktop_apps",
  "apps": [
   "slack",
   "putty",
   "jre8",
   "python2",
   "ruby",
   "chefdk",
   "vmwarevsphereclient",
   "vmwareworkstation",
   "vagrant",
   "terraform",
   "packer",
   "visualstudiocode",
   "pushbullet",
 ]
}

这适用于“chocolatey”资源 - 但是它可以与linux(yum)上的标准包资源一起使用吗?

2 个答案:

答案 0 :(得分:0)

是的,它是可能的 - 它只是代码。

您可以从数据包中提取此类信息,并将包名称列表作为列表传递给package资源。

答案 1 :(得分:0)

你并没有真正传递包资源“数据包”你传递的数据包是你从data_bag中提取出来的。包提供程序对您正在使用的data_bag一无所知。

你所做的与chocolatey_package [ "slack", "putty" .... ]没有什么不同。要做版本,您需要传递相同长度的版本数组:

package [ "slack", "putty", "jre8" ] do
  version [ nil, "1.2.3", nil ]
end

您应该将其作为name, version对存储在数据库中的哈希中,然后将键和值提取为数组。给包裹提供者。