Frage Wie man ein Paket mit Marionette und einer .deb Datei aktualisiert


Ich versuche herauszufinden, die richtige Weise zu aktualisieren / ein Deb-Paket mit Marionette aus einer lokalen Quelle Deb-Datei aktualisieren. 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 'Paket', wobei der Provider auf 'dpkg' gesetzt ist. Das funktioniert und ich bekomme die richtige Version installiert.

Meine Frage ist, wie man dieses Paket in Zukunft korrekt aktualisieren kann. Kann ich einfach die Quelldatei ändern und Marionette wird wissen, dass es eine andere Version ist und dieses Paket aktualisieren? Wie bestimmt die Puppe, welche Version eines Pakets installiert wurde, im Vergleich zur Version der Quell-Deb-Datei?

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


27
2017-10-07 15:13


Ursprung




Antworten:


Ich habe diese Frage auch an die Marionettenbenutzergruppe geschrieben und dies war eine Antwort, die ich zurückbekommen habe.

Wenn Sie hinzufügen, stellen Sie sicher neueste Es überprüft die Quelldatei auf das aktuell installierte Paket und installiert das neue Paket, falls es aktuell ist. Ich bin immer noch nicht sicher, wie Sie zu einer älteren Version zurückkehren würden, aber das scheint mein Problem für jetzt 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 Marionetten-Benutzergruppenpost ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f


37
2017-10-11 15:03



Nicht getestet, aber wenn apt als Provider verwendet wird. Sie können den letzten Wert in einen String mit der Versionsnummer ändern - zB: ensure => '1.0.4rc2-1_all' - benlumley
Überprüft haben docs.puppetlabs.com/references/latest/type.html#package - Sieht so aus, als ob mein empfohlener Wert ungültig ist. Es besagt, dass dpkg nicht versionierbar ist. - benlumley
Nun, @benlumley, apt-get ist versionierbar und dpkg (auf dem apt-get basiert) ist es nicht. Es ist also schwierig, die beiden zu mischen, wenn Sie so eine Version möchten. Aus diesem Grund könnte es in diesen Fällen sinnvoll sein, ein Mini-Repository einzurichten und es von apt-get verwalten zu lassen (dies ist der Standardanbieter für Debian-Systeme). - Aktau