Jak zaktualizować pakiet przy użyciu marionetki i pliku .deb

27

Próbuję znaleźć właściwy sposób aktualizacji / aktualizacji pakietu deb za pomocą marionetki z lokalnego źródłowego pliku deb. Moja obecna konfiguracja wygląda następująco ...

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"
  }

}

Najpierw kopiuję plik deb na komputer klienta, a następnie używam „paczki” z dostawcą ustawionym na „dpkg”. To działa i otrzymuję zainstalowaną poprawną wersję.

Moje pytanie brzmi: jaki jest właściwy sposób aktualizacji tego pakietu w przyszłości. Czy mogę po prostu zmienić plik źródłowy, a lalek będzie wiedział, że jest to inna wersja i zaktualizować ten pakiet? W jaki sposób marionetka określa wersję zainstalowanego pakietu w porównaniu z wersją źródłowego pliku deb?

Jestem całkiem nowy w marionetce, więc jeśli masz sugestie dotyczące ulepszeń do mojej istniejącej konfiguracji, są one bardzo mile widziane.

delux247
źródło

Odpowiedzi:

36

Wysłałem również to pytanie do grupy użytkowników marionetek i to była odpowiedź, którą otrzymałem.

Jeśli dodasz, upewnij się, że najnowsza , sprawdzi plik źródłowy względem aktualnie zainstalowanego pakietu i zainstaluje nowy, jeśli jest najnowszy. Nadal nie jestem pewien, jak przywrócisz starszą wersję, ale wydaje się, że to na razie rozwiązało mój problem.

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

Oto link do posta grupy użytkowników marionetek ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f

delux247
źródło
Nie testowano, ale jeśli używasz apt jako dostawcy. możesz zmienić najnowszy na ciąg znaków o numerze wersji w - np .: zapewnij => '1.0.4rc2-1_all'
benlumley
Po sprawdzeniu docs.puppetlabs.com/references/latest/type.html#package - wygląda na to, że moje powyższe polecenie jest nieprawidłowe, mówi, że dpkg nie ma wersji.
benlumley,
Cóż, @benlumley, apt-get można aktualizować, a dpkg (na którym oparty jest apt-get) nie jest. Trudno więc mieszać te dwie rzeczy, gdy chcesz mieć taką wersję. Dlatego w takich przypadkach dobrym pomysłem może być skonfigurowanie mini-repozytorium i zarządzanie nim przez apt-get (który jest domyślnym dostawcą w systemach Debian)
Aktau