Chef infra 使用chef安装rpm包(带依赖项)

Chef infra 使用chef安装rpm包(带依赖项),chef-infra,chef-recipe,chef-solo,Chef Infra,Chef Recipe,Chef Solo,我有一个rpm包的列表,包括依赖项。在本地,我使用rpm-I*.rpm,它工作得很好。当我使用chef的rpm_包资源时,如何使用-I标志。我不能使用yum,因为我们正在尝试脱机工作的东西 只需为rpm-i提供一种烹饪方法。您有两种选择: 痛击 正如您在问题中所做的那样,您可以使用bash资源来执行rpm命令。默认情况下,这是不是幂等的,并且(显然)不是跨平台的: bash'rpm-i*.rpm'do cwd'/path/to/that/directory' 结束 红宝石 稍微简单一点,您可以

我有一个rpm包的列表,包括依赖项。在本地,我使用rpm-I*.rpm,它工作得很好。当我使用chef的rpm_包资源时,如何使用-I标志。我不能使用yum,因为我们正在尝试脱机工作的东西

只需为rpm-i提供一种烹饪方法。

您有两种选择:

痛击 正如您在问题中所做的那样,您可以使用
bash
资源来执行rpm命令。默认情况下,这是不是幂等的,并且(显然)不是跨平台的:

bash'rpm-i*.rpm'do
cwd'/path/to/that/directory'
结束
红宝石 稍微简单一点,您可以使用Ruby的本机文件系统函数遍历树:

Dir['/path/to/rpms/*.rpm']。每个do都有路径|
rpm_包文件.basename(路径)do
源路径
结束
结束

这将迭代给定路径中与glob匹配的每个项目。

Cool Thank Seth。。我只是想检查一下是否有使用包资源的方法,因为我读了很多书,但找不到任何方法。