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不支持版本字段。