Chef infra 厨师包资源是否可以接受数据包?

Chef infra 厨师包资源是否可以接受数据包?,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我有一组软件包,最好添加到数据包中,以便安装它们。是否可以将包资源与数据包一起使用 编辑:例如,这就是我使用巧克力资源的方式: workstation_apps = data_bag_item('winapps','desktop_apps') chocolatey_package workstation_apps['apps'] 这是数据包结构: { "id": "desktop_apps", "apps": [ "slack", "putty", "jre8",

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

编辑:例如,这就是我使用巧克力资源的方式:

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",
 ]
}

这适用于“巧克力”资源-但它是否适用于linux上的标准软件包资源(yum)?

是的,这是可能的-这只是代码


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

您并不是在这里传递包资源“数据包”,而是传递从数据包中提取的数组。软件包提供商对您正在使用的数据包一无所知

你所做的和巧克力包装一样[“松弛”,“油灰”…]
。要创建版本,需要向其传递相同长度的版本数组:

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

您可能应该将其作为
name,version
对存储在数据包中的散列中,然后将键和值提取为数组。提供给软件包提供商。

请添加您的代码,至少在您处理该问题时添加。好的-添加了我的代码,适用于类似的情况-该代码适用于软件包吗?是的,当然,这也适用。。不确定,什么更有效-张贴在这里或只是尝试一下。或者你看到这里有什么特别的挑战吗?太好了-谢谢!不是在我现在就可以尝试的地方:)唯一的另一个挑战是我需要指定包的版本。不确定数据包结构应该是什么样子。你可以使用ruby哈希。我不确定
yum
资源如何处理此问题,但是对于
apt
,忽略了
version
参数。您能否提供一个小示例,说明散列是什么样子的?Yum不支持版本字段。