Chef 包资源可以接受数据包吗?
Can the Chef package resource accept a data bag?
我有一组软件包可以很好地添加到数据包中以便全部安装。是否可以使用带有数据包的包资源?
编辑:例如 - 这就是我使用巧克力资源的方式:
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) 上的标准包资源?
是的,这是可能的 - 这只是代码。
您可以从数据包中提取此类信息,并将包名列表作为列表传递给 package
资源。
您并没有真正在此处传递包资源 "a data bag" 您传递的是您从 data_bag 中提取的数组。软件包提供者对您正在使用的data_bag一无所知。
您所做的与 chocolatey_package [ "slack", "putty" .... ]
没有什么不同。要执行版本,您需要将相同长度的版本数组传递给它:
package [ "slack", "putty", "jre8" ] do
version [ nil, "1.2.3", nil ]
end
您可能应该将其作为 name, version
对存储在数据包中的散列中,然后将键和值提取为数组。交给包裹提供者。
我有一组软件包可以很好地添加到数据包中以便全部安装。是否可以使用带有数据包的包资源?
编辑:例如 - 这就是我使用巧克力资源的方式:
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) 上的标准包资源?
是的,这是可能的 - 这只是代码。
您可以从数据包中提取此类信息,并将包名列表作为列表传递给 package
资源。
您并没有真正在此处传递包资源 "a data bag" 您传递的是您从 data_bag 中提取的数组。软件包提供者对您正在使用的data_bag一无所知。
您所做的与 chocolatey_package [ "slack", "putty" .... ]
没有什么不同。要执行版本,您需要将相同长度的版本数组传递给它:
package [ "slack", "putty", "jre8" ] do
version [ nil, "1.2.3", nil ]
end
您可能应该将其作为 name, version
对存储在数据包中的散列中,然后将键和值提取为数组。交给包裹提供者。