Puppet - obtenha lista de pacotes e versões

11

É possível dizer ao puppet para compilar um catálogo para um (ou todos) nós e salvar esses dados específicos em algum lugar?

Estou especificamente interessado em obter todos os pacotes necessários e suas versões por nó, mas uma abordagem geral para obter quaisquer dados também é adequada.

Michal Bryxí
fonte

Respostas:

13

ATUALIZAR

Esta resposta original está desatualizada. O comando atualizado para o Puppet 3.x é:

puppet resource package

Se você estiver procurando por todos os pacotes e versões instalados em um nó, independentemente de estar ou não instalado pelo Puppet, o seguinte comando é incorporado e pode ser executado em qualquer nó do Puppet:

ralsh package

Isso produzirá os dados em um formulário de manifesto Puppet para stdout.

Ralsh funcionará para qualquer tipo de recurso que tenha o instancesmétodo implementado (usuários, grupos, etc.).

Se você deseja inspecionar centralmente o catálogo YAML para todos os recursos definidos nos manifestos do Puppet, seu Puppetmaster já armazena essas informações em cache /var/lib/puppet/client_yaml/cataloge você só precisa analisá-las com o analisador YAML de sua escolha. O Serviço de Inventário de Marionetes, introduzido recentemente, também pode ser uma boa opção para você; você pode se contentar com storeconfigs se estiver executando em uma versão mais antiga como 0.25.x.

jgoldschrafe
fonte
Um problema com essa abordagem é que ela não permite várias versões do mesmo pacote, como é comum no pacote do kernel nas distribuições baseadas no Red Hat.
Paul Engrenagem
Não sei se isso realmente responde à pergunta: O comando lista os pacotes atualmente instalados , não os pacotes exigidos pelo Puppet. Estou interessado em uma lista destes últimos para alimentá-lo rpmorphan.
precisa
@ TimLandscheidt, você está perguntando sobre a lista completa de packagerecursos que o Puppet lista no catálogo para um nó? A menos que você queira analisar o catálogo em cache, sua melhor aposta seria consultar o PuppetDB. A API de consulta está disponível aqui .
jgoldschrafe
@jgoldschrafe Finalmente, comecei a instalar o PuppetDB e, de fato, ele faz o que eu quero. Posso consultar todos os recursos do pacote que "garantem" diferentes de "ausentes" para um host específico e usar o resultado JSON para alimentar uma lista com o rpmorphan. Obrigado!
Tim Landscheidt