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

时间:2014-04-07 12:55:55

标签: chef chef-recipe chef-solo

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

只需要rpm -i的厨师方式。

1 个答案:

答案 0 :(得分:2)

您有两种选择:

猛击它

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

bash 'rpm -i *.rpm' do
  cwd '/path/to/that/directory'
end

Ruby it

稍微简单一点,您可以使用Ruby的本机文件系统函数来遍历树:

Dir['/path/to/rpms/*.rpm'].each do |path|
  rpm_package File.basename(path) do
    source path
  end
end

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