Come aggiornare un pacchetto usando puppet e un file .deb


27

Sto cercando di capire il modo corretto di aggiornare / aggiornare un pacchetto deb usando puppet da un file deb di origine locale. La mia configurazione attuale è simile a questa ...

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

}

Copio prima il file deb sul computer client e quindi uso 'pacchetto' con il provider impostato su 'dpkg'. Funziona e ho installato la versione corretta.

La mia domanda è qual è il modo corretto di aggiornare questo pacchetto in futuro. Posso semplicemente cambiare il file sorgente e Puppet saprà che è una versione diversa e aggiornare questo pacchetto? In che modo Puppet determina quale versione di un pacchetto ha installato rispetto alla versione del file deb sorgente?

Sono abbastanza nuovo per le marionette, quindi se hai suggerimenti per migliorare la mia configurazione esistente, sono molto apprezzati.

Risposte:


36

Ho anche pubblicato questa domanda sul gruppo di utenti fantoccio e questa è stata una risposta che ho ricevuto.

Se aggiungi assicurati che sia più recente , controllerà il file sorgente rispetto al pacchetto attualmente installato e installerà quello nuovo se è più recente. Non sono ancora sicuro di come tornare a una versione precedente, ma questo sembra risolvere il mio problema per ora.

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

Ecco un collegamento al post del gruppo di utenti fantoccio ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f


Non testato, ma se si utilizza apt come provider. puoi cambiare l'ultima stringa in una stringa con il numero di versione in - ad esempio: sure => '1.0.4rc2-1_all'
benlumley

Dopo aver controllato docs.puppetlabs.com/references/latest/type.html#package - sembra che il mio encomio sopra riportato non sia valido, dice che dpkg non è versione.
Benlumley,

Bene, @benlumley, apt-get è versionable e dpkg (su cui si basa apt-get) no. Quindi è un po 'difficile mescolare i due quando si desidera una versione del genere. Ecco perché in questi casi potrebbe essere una buona idea configurare un mini-repository e far sì che apt-get lo gestisca (che è il provider predefinito sui sistemi debian)
Aktau,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.