I just released version 0.4.8 of mcollective. It’s a small maintenance release fixing a few bugs and adding a few features. I wasn’t planning on another 0.4.x release before the big 1.0.0 but want to keep 1.0.0 close as possible to something that’s been out there for a while.
The only major feature it introduces is custom reports of your infrastructure.
It supports two types of scriptlet for building reports. The first is a little DSL that uses printf style format strings:
inventory do format "%s:\t\t%s\t\t%s" fields { [ identity, facts["serialnumber"], facts["productname"] ] } end |
Which does something like this:
$ mc-inventory --script hardware.mc web1: KKxxx1H IBM eServer BladeCenter HS20 -[8832M1X]- rep1: KKxxx5Z IBM eServer BladeCenter HS20 -[8832M1X]- db4: KDxxxZY IBM System x3655 -[794334G]- man2: KDxxxR0 eserver xSeries 336 -[88372CY]- db2: KDxxxGD IBM System x3655 -[79855AG]- |
The other – perhaps more ugly – is using a Perl like format method. To use this you need the formatr gem installed, and a report might look like this:
formatted_inventory do page_length 20 page_heading <<TOP Node Report @<<<<<<<<<<<<<<<<<<<<<<<<< time Hostname: Customer: Distribution: ------------------------------------------------------------------------- TOP page_body <<BODY @<<<<<<<<<<<<<<<< @<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< identity, facts["customer"], facts["lsbdistdescription"] @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< facts["processor0"] BODY end |
And the resulting report is something like this:
$ mc-inventory --script hardware.mc Node Report Fri Aug 20 21:49:39 +0100 Hostname: Customer: Distribution: ------------------------------------------------------------------------- web1 rip CentOS release 5.5 (Final) Intel(R) Xeon(R) CPU L5420 web2 xxxxxxx CentOS release 5.5 (Final) Intel(R) Xeon(R) CPU X3430 |
The report will be paged 20 nodes per page. The result is very pleasing even if the report format is a bit grim, but it would be much worse to write yet another reporting DSL!
See the full release notes for details on bug fixes and other features.