So aktualisieren Sie ein Paket mit Puppet und einer .deb-Datei

27

Ich versuche herauszufinden, wie ein Deb-Paket mit Puppet aus einer lokalen Deb-Quelldatei aktualisiert / aktualisiert werden kann. Meine aktuelle Konfiguration sieht so aus ...

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

}

Ich kopiere zuerst die Deb-Datei auf den Client-Rechner und verwende dann 'package', wobei der Provider auf 'dpkg' gesetzt ist. Das funktioniert und ich bekomme die richtige Version installiert.

Meine Frage ist, was der richtige Weg ist, um dieses Paket in Zukunft zu aktualisieren. Kann ich einfach die Quelldatei austauschen und Puppet wird erkennen, dass es sich um eine andere Version handelt, und dieses Paket aktualisieren? Wie ermittelt Puppet, welche Version eines Pakets gegenüber der Version der Deb-Quelldatei installiert ist?

Ich bin ziemlich neu in Puppet, also wenn Sie Vorschläge für Verbesserungen an meiner bestehenden Konfiguration haben, werden sie sehr geschätzt.

delux247
quelle

Antworten:

36

Ich habe diese Frage auch in der Gruppe der Marionettennutzer gepostet und dies war eine Antwort, die ich zurückerhielt.

Wenn Sie " Neueste sicherstellen" hinzufügen, wird die Quelldatei mit dem aktuell installierten Paket verglichen und das neue Paket installiert, falls es aktuell ist. Ich bin mir immer noch nicht sicher, wie Sie zu einer älteren Version zurückkehren würden, aber dies scheint mein Problem vorerst zu lösen.

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

Hier ist ein Link zum Beitrag der Puppet-Benutzergruppe ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f

delux247
quelle
Nicht getestet, aber wenn Sie apt als Provider verwenden. Sie können mit der Versionsnummer neueste in einen String ändern - zB gewährleisten => ‚1.0.4rc2-1_all‘
benlumley
Nachdem ich docs.puppetlabs.com/references/latest/type.html#package überprüft habe - es sieht so aus, als ob mein obiger Kommentar ungültig ist. Es besagt, dass dpkg nicht versionierbar ist.
Benlumley
Nun, @benlumley, apt-get ist versionierbar und dpkg (auf dem apt-get basiert) nicht. Es ist also ziemlich schwierig, die beiden zu mischen, wenn man so eine Version haben möchte. Aus diesem Grund könnte es in diesen Fällen eine gute Idee sein, ein Mini-Repository einzurichten und es von apt-get verwalten zu lassen (dies ist der Standardanbieter auf Debian-Systemen)
Aktau,