У меня есть 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. Как я могу это сделать ? Пожалуйста помоги
Вы можете добавить репо с марионеткой следующим образом:
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
строка должна убедиться, что репо добавлено перед пакетом, иначе мощь случается, что пакет не устанавливается при первом запуске, поскольку репо еще нет для yum
.
Возможно, если вы хотите сделать что-то быстрее и не хотите добавлять обороты в yumrepo, вы также можете рассмотреть этот вариант.
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'
}