如何通过 puppet 和 yum 提供商安装 rpm

如何通过 puppet 和 yum 提供商安装 rpm

我有一个 RPM,我将其保存在 repo 中。

现在我需要通过 puppet 安装 rpm。我没有任何依赖该 rpm。目前我正在使用脚本

package { "application":
        provider => rpm,
       source => "http://10.20.51.163/repo/calculator$calculator_version.rpm",
        install_options => ['-ivh --prefix=/opt/'],
        ensure => [$calculator_version],
}

但我想更改此代码并使用 yum 作为提供程序。我该怎么做?请帮忙

答案1

你可以像这样用 puppet 添加 repo:

yumrepo { "pp-centos-7-local":
     baseurl => "http://localrepo.example.com/localrepo",
     descr => "centos-7-local",
     enabled => 1,
}

然后您可以使用更简单的package资源:

package { yourpackagename:
     ensure => present,
     # require => Yumrepo["pp-centos-7-local"],
}

require行应确保在包之前添加了 repo,否则可能由于 repo 尚未存在,因此第一次运行时无法安装软件包yum

答案2

也许,如果您想更快地完成某些操作并且不想在 yumrepo 中添加 rpm,您也可以考虑此选项。

  exec {'download_install_epel_rpm' :
    path    => ['/usr/bin', '/usr/sbin', '/bin'],
    command => '/usr/bin/wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -P /tmp/;rpm -ivh /tmp/epel-release-latest-7.noarch.rpm; rm -f /tmp/epel-release-latest-7.noarch.rpm',
    unless  => 'rpm -qa | grep epel-release'
  }

相关内容