Greetings,
I am using ody/pkginventory [http://forge.puppetlabs.com/ody/pkginventory] as a way of getting information about what rpms are installed on a system. I am using this module over `puppet resource package` for two reasons: 1) Having it as a fact helps some of the other things we are doing and I don't know if-it's-possible/how to get the results of a `puppet resource package` as a fact and 2) I can't seem to figure out how to query the puppetmaster puppetdb (using curl) and pull back a full listing of installed packages on a node but I _can_ get the facts this way. We made a few small modifications to this package to add the Scientific and SLES OS's (which both OS's work just fine; just need to make the change in both pkg.rb files) and rolled out this module to our dev environment. That is when I noticed a "problem". I realize I can get the "kernel" fact, I am just using the "kernel" package as an example as it is reproducible on many systems. The information I am really after is other packages which have the same problem. $ uname -r 2.6.32-431.1.2.el6.x86_64 $ facter -p | grep "pkg_kernel " pkg_kernel => 2.6.32-358.el6 $ puppet resource package kernel package { 'kernel': ensure => '2.6.32-358.el6', } $ rpm -qa | grep "^kernel-2" kernel-2.6.32-358.el6.x86_64 kernel-2.6.32-431.1.2.el6.x86_64 The problem is that neither the resource nor the module are returning the actual running kernel. In reality, I would like to know every package. My co-worker (who is a bit more familiar with Ruby then I am) made the following changes to lib/facter/pkg.rb: require 'facter/util/pkg' counter_hash = {} Facter::Util::Pkg.package_list.each do |key, value| if counter_hash[:"#{key}"].nil? counter_hash[:"#{key}"] = value else counter_hash[:"#{key}"] << ", #{value}" end end counter_hash.each do |key, value| Facter.add(:"pkg_#{key}") { setcode { value } } end This produces an output of : pkg_kernel => 2.6.32-358.el6, 2.6.32-431.1.2.el6 Much more desirable. So the question for this group is, before I roll this out to all my system does anyone have a better solution or suggestion on accomplishing this task? What I have after my co-workers mod works, but I am really curious how/if others are retrieving a list of all packages installed on a system. Thanks! -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/1570cc12-741a-40f3-bd3d-1cfbf5dbeb62%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
