我有一个 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'
}