Назад | Перейти на главную страницу

Как установить rpm через марионетку и провайдера как yum

У меня есть 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'
  }