Another cool project I keep an eye on for some weeks is “the marionette collective“, aka mcollective. This project is leaded & develloped by R.I. Pienaar, one of the most active people in the puppet world too.
Mcollective is an framework for distributed sysadmin. It relies on a messaging framework and has many features included : flexibility, speed, easy to understand.
Some time ago, I had wrote a tool called “whosyourdaddy” to help me (and my memory as big as a goldfish one) to find on which Xen dom0 a Xen domU was living. It worked fine, expect the fact that is was not dynamic : if a VM was migrated from a dom0 to another, I had to update the CMDB. Not really reliable (if an update fails the CMDB is no more accurate) and I didn’t want to have to embed this constraint in the Xen logic. So I decided to try out to write my own mcollective agent and here it is ! It is built on top of a (very) small ruby module for xen and has it own client.
You can find on which dom0 a domU resides :
master1:~# ./mc-xen -a find --domu test hypervisor2 : Absent hypervisor1 : Absent master1:~# ./mc-xen -a find --domu domu2 hypervisor2 : Present hypervisor1 : Absent
Or list your domUs :
master1:~# ./mc-xen -a list hypervisor2 domu2 hypervisor1 no domU running