Marioneta: obtenga una lista de paquetes y versiones

11

¿Es posible decirle a Puppet que compile un catálogo para uno (o todos) nodos y guarde esos datos particulares en alguna parte?

Estoy específicamente interesado en obtener todos los paquetes necesarios y sus versiones por nodo, pero también es adecuado un enfoque general para obtener cualquier información.

Michal Bryxí
fuente

Respuestas:

13

ACTUALIZAR

Esta respuesta original ahora está desactualizada. El comando actualizado para Puppet 3.x es:

puppet resource package

Si está buscando todos los paquetes y versiones instalados en un nodo, independientemente de si Puppet los instaló o no, el siguiente comando está integrado y puede ejecutarse en cualquier nodo Puppet:

ralsh package

Esto generará los datos en forma de manifiesto de Puppet en stdout.

Ralsh funcionará para cualquier tipo de recurso que tenga instancesimplementado el método (usuarios, grupos, etc.).

Si está buscando inspeccionar centralmente el catálogo de YAML para todos los recursos definidos en los manifiestos de Puppet, su Puppetmaster ya almacena en caché esta información /var/lib/puppet/client_yaml/catalogy solo necesita analizarla con el analizador de YAML de su elección. El Servicio de inventario de marionetas que se introdujo hace poco también puede ser una buena opción para usted; puedes conformarte con storeconfigs si estás ejecutando una versión anterior como 0.25.x.

jgoldschrafe
fuente
Un problema con este enfoque es que no permite múltiples versiones del mismo paquete, como es común con el paquete del núcleo en las distribuciones basadas en Red Hat.
Paul Gear
No estoy seguro de que esto realmente responda la pregunta: el comando enumera los paquetes instalados actualmente , no los paquetes requeridos por Puppet. Estoy interesado en una lista de este último para alimentarlo rpmorphan.
Tim Landscheidt
@TimLandscheidt, ¿está preguntando sobre la lista completa de packagerecursos que Puppet enumera en el catálogo para un nodo? A menos que desee analizar el catálogo en caché, su mejor opción sería consultar PuppetDB. La consulta API está disponible aquí .
jgoldschrafe
@jgoldschrafe Finalmente pude instalar PuppetDB, y de hecho hace lo que quiero. Puedo consultar todos los recursos del paquete que tienen "asegurar" que no es igual a "ausente" para un host específico, y usar el resultado JSON para alimentar una lista a rpmorphan. ¡Gracias!
Tim Landscheidt