Puppet - obtenir la liste des packages et des versions

11

Est-il possible de dire à la marionnette de compiler un catalogue pour un (ou tous) noeud (s) et de sauvegarder ces données particulières quelque part?

Je suis particulièrement intéressé à obtenir tous les packages nécessaires et leurs versions par nœud, mais une approche générale pour obtenir des données convient également.

Michal Bryxí
la source

Réponses:

13

MISE À JOUR

Cette réponse originale est désormais obsolète. La commande mise à jour pour Puppet 3.x est:

puppet resource package

Si vous recherchez tous les packages et versions installés sur un nœud, qu'ils soient installés par Puppet ou non, la commande suivante est intégrée et peut être exécutée sur n'importe quel nœud Puppet:

ralsh package

Cela affichera les données sous forme de manifeste Puppet sur stdout.

Ralsh fonctionnera pour tout type de ressource sur laquelle la instancesméthode est implémentée (utilisateurs, groupes, etc.).

Si vous cherchez à inspecter de manière centralisée le catalogue YAML pour toutes les ressources définies dans les manifestes Puppet, votre Puppetmaster met déjà ces informations en cache /var/lib/puppet/client_yaml/cataloget il vous suffit de les analyser avec l'analyseur YAML de votre choix. Le service d'inventaire de marionnettes qui a été introduit assez récemment peut également être une bonne option pour vous; vous pouvez vous contenter de storeconfigs si vous utilisez une ancienne version comme 0.25.x.

jgoldschrafe
la source
Un problème avec cette approche est qu'elle ne permet pas plusieurs versions du même package, comme cela est courant avec le package du noyau sur les distributions basées sur Red Hat.
Paul Gear
Je ne suis pas sûr que cela réponde vraiment à la question: la commande répertorie les packages actuellement installés , pas les packages requis par Puppet. Je suis intéressé par une liste de ces derniers pour l'alimenter rpmorphan.
Tim Landscheidt
@TimLandscheidt, demandez-vous la liste complète des packageressources que Puppet répertorie dans le catalogue d'un nœud? À moins que vous ne vous sentiez prêt à analyser le catalogue mis en cache, votre meilleur pari serait d'interroger PuppetDB. L'API de requête est disponible ici .
jgoldschrafe
@jgoldschrafe A finalement réussi à installer PuppetDB, et en effet il fait ce que je veux. Je peux interroger toutes les ressources de package qui ont "assurer" différent de "absent" pour un hôte spécifique et utiliser le résultat JSON pour alimenter une liste à rpmorphan. Merci!
Tim Landscheidt