Como atualizar um pacote usando o fantoche e um arquivo .deb

27

Eu estou tentando descobrir a maneira correta de atualizar / atualizar um pacote deb usando puppet de um arquivo deb de origem local. Minha configuração atual fica assim ...

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

}

Primeiro copio o arquivo deb para a máquina cliente e depois uso 'package' com o provedor definido como 'dpkg'. Isso funciona e eu recebo a versão correta instalada.

Minha pergunta é qual é a maneira correta de atualizar este pacote no futuro. Posso simplesmente mudar o arquivo de origem e o fantoche saberá que é uma versão diferente e atualizar este pacote? Como o puppet determina qual versão de um pacote foi instalado versus a versão do arquivo deb de origem?

Eu sou muito novo em fantoches, então se você tiver sugestões de melhorias para minha configuração existente, elas serão muito apreciadas.

delux247
fonte

Respostas:

36

Também postei essa pergunta no grupo de usuários de marionetes e essa foi uma resposta que voltei.

Se você adicionar garantir mais recente, ele verificará o arquivo de origem no pacote atualmente instalado e instalará o novo, se for o mais recente. Ainda não tenho certeza de como você reverteria para uma versão mais antiga, mas isso parece resolver o meu problema por enquanto.

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

Aqui está um link para a postagem do grupo de usuários fantoches ... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f

delux247
fonte
Não testado, mas se estiver usando o apt como provedor. você pode alterar a última para uma string com o número da versão em - por exemplo: garantir => '1.0.4rc2-1_all'
benlumley 28/04
Depois de verificar docs.puppetlabs.com/references/latest/type.html#package - parece que meu elogio acima é inválido, ele diz que o dpkg não pode ser versionado.
precisa saber é o seguinte
Bem, @benlumley, o apt-get é versionável e o dpkg (no qual o apt-get é baseado) não é. Então é meio difícil misturar os dois quando você quer fazer uma versão assim. É por isso que, nestes casos, pode ser uma boa idéia para configurar um mini-repositório e tem apt-get gerenciá-lo (que é o provedor padrão em sistemas Debian)
Aktau