Как обновить пакет, используя puppet и файл .deb

27

Я пытаюсь найти правильный способ обновления / обновления пакета deb, используя puppet из локального исходного файла deb. Мой текущий конфиг выглядит так ...

class adobe-air-2-0-4 {

  file { "/opt/air-debs":
    ensure => directory
  }

  file { "/opt/air-debs/adobeair-2.0.4.deb":
    owner   => root,
    group   => root,
    mode    => 644,
    ensure  => present,
    source  => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb"
  }

  package { "adobeair":
    provider => dpkg,
    ensure => installed,
    source => "/opt/air-debs/adobeair-2.0.4.deb"
  }

}

Сначала я копирую файл deb на клиентский компьютер, а затем использую «package» с поставщиком, установленным в «dpkg». Это работает, и я установил правильную версию.

Мой вопрос заключается в том, как правильно обновить этот пакет в будущем. Могу ли я просто изменить исходный файл, и puppet узнает, что это другая версия, и обновит этот пакет? Как puppet определяет версию установленного пакета по сравнению с версией исходного файла deb?

Я довольно новичок в Puppet, так что если у вас есть предложения по улучшению моего существующего конфига, они очень ценятся.

delux247
источник

Ответы:

36

Я также разместил этот вопрос в группе пользователей марионеток, и я получил ответ.

Если вы добавите в него последний вариант, он проверит исходный файл по текущему установленному пакету и установит новый, если он последний. Я до сих пор не знаю, как вы откатитесь на более старую версию, но сейчас это, похоже, решает мою проблему.

package { "puppet-dashboard":
 provider => dpkg,
 ensure   => latest,
 source   => "/tmp/puppet-dashboard_1.0.4rc2-1_all.deb"
}

Вот ссылка на сообщение группы пользователей марионеток ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f

delux247
источник
Не проверено, но при использовании apt в качестве поставщика. Вы можете заменить последний на строку с номером версии в - например: sure => '1.0.4rc2-1_all'
benlumley
Проверив docs.puppetlabs.com/references/latest/type.html#package - похоже, что моя вышеупомянутая рекомендация недействительна, она говорит, что dpkg не является версионной.
Бенлумли
Ну, @benlumley, apt-get является версионным, а dpkg (на котором основан apt-get) - нет. Так что довольно сложно смешать эти два варианта, когда вы захотите создать такую ​​версию. Вот почему в этих случаях было бы неплохо настроить мини-репозиторий и настроить его для управления apt-get (который является поставщиком по умолчанию в системах Debian)
Актау