【问题标题】:Installing rpm packages using chef (with dependencies)使用 chef 安装 rpm 包(带有依赖项)
【发布时间】:2014-04-08 20:18:32
【问题描述】:

我有一个包含依赖项的 rpm 包列表。在本地我执行 rpm -i *.rpm 并且效果很好。当我使用 chef 的 rpm_package 资源时如何使用 -i 标志。我不能使用 yum,因为我们正在尝试离线工作。

只需要一个 rpm -i 的厨师方法。

【问题讨论】:

    标签: chef-infra chef-recipe chef-solo


    【解决方案1】:

    你有两个选择:

    抨击它

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

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

    红宝石吧

    稍微不那么直接,你可以使用 Ruby 的原生文件系统函数来遍历树:

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

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

    【讨论】:

    • 很酷,谢谢 Seth.. 我只是想检查一下是否有使用包资源的方法,因为我做了很多阅读但找不到任何东西。
    猜你喜欢
    • 2021-05-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2012-01-26
    • 2012-12-02
    • 2018-11-11
    • 1970-01-01
    • 2019-01-15
    相关资源
    最近更新 更多