Cómo actualizar un paquete usando una marioneta y un archivo .deb


27

Estoy tratando de descubrir la forma correcta de actualizar / actualizar un paquete deb usando puppet desde un archivo deb de origen local. Mi configuración actual se ve así ...

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

}

Primero copio el archivo deb en la máquina del cliente y luego uso 'paquete' con el proveedor configurado en 'dpkg'. Esto funciona y obtengo la versión correcta instalada.

Mi pregunta es cuál es la forma correcta de actualizar este paquete en el futuro. ¿Puedo simplemente cambiar el archivo fuente y Puppet sabrá que es una versión diferente y actualizar este paquete? ¿Cómo determina Puppet qué versión de un paquete ha instalado versus la versión del archivo deb de origen?

Soy bastante nuevo en Puppet, por lo que si tiene sugerencias para mejorar mi configuración existente, las agradeceré mucho.

Respuestas:


36

También publiqué esta pregunta en el grupo de usuarios de títeres y esta fue una respuesta que recibí.

Si agrega asegurarse de que es lo último , verificará el archivo de origen con el paquete instalado actualmente e instalará el nuevo si es más reciente. Todavía no estoy seguro de cómo volvería a una versión anterior, pero esto parece resolver mi problema por ahora.

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

Aquí hay un enlace a la publicación del grupo de usuarios de la marioneta ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f


No probado, pero si usa apt como proveedor. puede cambiar el último a una cadena con el número de versión en - por ejemplo: sure => '1.0.4rc2-1_all'
benlumley

Después de comprobar docs.puppetlabs.com/references/latest/type.html#package , parece que mi recomendación anterior no es válida, dice que dpkg no es versionable.
benlumley

Bueno, @benlumley, apt-get es versionable y dpkg (en el que se basa apt-get) no. Así que es un poco difícil mezclar los dos cuando quieres una versión así. Es por eso que en estos casos podría ser una buena idea de configurar un mini-repositorio y tienen apt-get gestionarla (que es el proveedor predeterminado en sistemas Debian)
Aktau
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.