Usando o Puppet para instalar pacotes de software

6

Estamos no processo de pesquisar uma implementação de gerenciamento de configuração / sistemas e fizemos bastante demoing de Puppet. O Puppet parece se sobressair no algo simples "garanta que este pacote esteja instalado, que este arquivo de configuração exista e que este serviço esteja rodando".

Eu não consigo encontrar um bom exemplo do mundo real de gerenciamento de software que não funciona tão bem. Alguns exemplos:

  • IBM DB2 (distribuído via tarball com o instalador, "fixpacks" são similares)
  • Simpana CommVault (usa um instalador com uma interface ncurses, mas aceita um arquivo de "resposta" se for persuadido)
  • AccuRev (instalador binário, com suporte a arquivos "answer")
  • VMWare Tools (instalador binário)

Que abordagem os usuários do Puppet adotaram para integrar software como esse em seus ambientes?

    
por Kyle Smith 29.06.2011 / 19:43

3 respostas

5

Eu mantenho um servidor com arquivos criados localmente e faço pacotes .deb ou .rpm para esses softwares.

Em alguns casos em que não me incomodei em fazer nada sobre isso, faço um exec wget para fazer o download do arquivo e um exec com o método de extração, seja ele qual for, com creates atributo apontando para o binário principal. Não vai lidar com atualizações, no entanto.

Para lidar com a atualização, faça a instalação exec a refreshonly => true e coloque um notify no exec para wget .

Amostra:

exec { "/usr/bin/wget http://fileserver.domain/jboss/jboss-${version}.prd.tar.gz -O /tmp/jboss.tgz":
    creates => '/tmp/jboss.tgz',
    require => Package['wget'],
    alias   => 'wget_jboss',
}

exec { '/bin/tar xzvf /tmp/jboss.tgz':
    cwd     => '/opt',
    creates => "/opt/jboss-${version}/bin",
    user    => 'jboss',
    group   => 'jboss',
    require => [ User['jboss'], Exec['wget_jboss'], File["/opt/jboss-${version}"], ],
    before  => Service['jboss'],
    alias   => 'untar_jboss',
}
    
por 29.06.2011 / 23:59
3

O recurso exec é uma espécie de pega-tudo para gerenciar qualquer coisa que não se encaixa muito bem em um dos outros tipos de pacotes.

Se você conseguir fazer algo sem supervisão na linha de comando, e você puder verificar a existência de um arquivo para confirmar a instalação, então você deve ser capaz de obter o fantoche para lidar com isso.

Um dos seus exemplos, o VMware Tools, tem um módulo no site do módulo de fantoches, aqui . Como você pode ver no arquivo init.pp ( aqui ), o processo de instalação é feito principalmente via exec resources.

    
por 29.06.2011 / 19:55
1

Bem, você poderia simplesmente rodar instalado em uma máquina e colocar arquivos instalados no tar / rpm / deb. Claro, às vezes não será fácil.

    
por 29.06.2011 / 20:05