What we are looking for is a Ruby program which takes the contents of
/var/lib/puppet/reports/*/*.yaml
and reports in detail on everything changed or proposed for change if in
noop mode
(file permissions, modes, user creates, etc.)
Stuart
On Wednesday, November 27, 2013 7:12:48 AM UTC-8, David Portabella wrote:
> Thanks again! It is great to use the puppet report yaml files!
> here there is an example script that prints all resources statuses,
> then it filters them by taking only the services,
> then it filters them by taking only the services changed to running.
>
> test.ruby
> #!/usr/bin/ruby
>
> require 'puppet'
> filename = ARGV.first
> report = YAML.load_file(filename)
> rs = report.resource_statuses.values.sort_by{|r| r.resource}
>
> puts "PRINT ALL RESOURCES STATUSES."
> rs.each do |r|
> puts "#{r.change_count} #{r.events.map {|e| e.previous_value}}
> #{r.events.map {|e| e.desired_value}} #{r.resource}"
> end
>
> puts "PRINT ALL SERVICES."
> services = rs.select{|r| r.resource_type == 'Service'}
> services.each do |r|
> puts "#{r.change_count} #{r.events.map {|e| e.previous_value}}
> #{r.events.map {|e| e.desired_value}} #{r.resource}"
> end
>
> puts "PRINT ALL SERVICES CHANGED TO RUNNING."
> services_changed_to_running = rs.select{|r| r.resource_type == 'Service'
> && r.change_count > 0 && r.events.index { |e| e.desired_value == :running }
> != nil}
> services_changed_to_running.each do |r|
> puts "#{r.change_count} #{r.events.map {|e| e.previous_value}}
> #{r.events.map {|e| e.desired_value}} #{r.resource}"
> end
>
> example output:
> $ test.ruby /var/opt/lib/pe-puppet/reports/test/201311261645.yaml
> PRINT ALL RESOURCES STATUSES.
> 1 [:absent] [:directory] File[/var/app]
> 1 [:absent] [:file] File[/var/app/app.conf]
> 2 [0, "755"] [91, "775"] File[/var/log/tomcat6]
> 0 [] [] Filebucket[puppet]
> 1 [:absent] [:present] Group[release]
> 1 [:absent] [:present] Package[varnish]
> 0 [] [] Schedule[weekly]
> 1 [:stopped] [:running] Service[varnish]
> 0 [] [] Tidy[/etc/collectd.d/]
> 1 ["/sbin/nologin"] ["/bin/bash"] User[tomcat]
> ...
>
> PRINT ALL SERVICES.
> 1 [:stopped] [:running] Service[collectd]
> 1 [:stopped] [:running] Service[logstash-agent]
> 1 [:true] [:false] Service[logstash]
> 1 [:stopped] [:running] Service[nginx]
> 0 [] [] Service[rsyslog]
> 1 [:stopped] [:running] Service[statsd]
> 1 [:false] [:true] Service[supervisord]
> 1 [:stopped] [:running] Service[varnish]
>
> PRINT ALL SERVICES CHANGED TO RUNNING
> 1 [:stopped] [:running] Service[collectd]
> 1 [:stopped] [:running] Service[logstash-agent]
> 1 [:stopped] [:running] Service[nginx]
> 1 [:stopped] [:running] Service[statsd]
> 1 [:stopped] [:running] Service[varnish]
>
>
--
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/37dc9802-5090-4502-aac2-c3f6421236fa%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.