2

I've got a bunch of LibVirt-managed (locally using virsh) KVM VMs on standalone Linux hosts (local KVM, local storage).

Is there any web-based application out there that will track the inventory - i.e. what VMs are on what hypervisor hosts, and are they running or not - and that has a working, usable API?

We're looking to move to "real" virtualization software sometime soon (some sort of butt-y stuff, probably either RHEV/oVirt or Open-something). My main concern is that I need to keep these current VMs with their current configuration - I need something that plays well with existing infrastrucutre. It's not really an issue if it doesn't also do what we want in the future (full management).

To be clear, I'm definitely not looking for a local GUI application as that's useless in our environment. I need something that's either a web application, or just a daemon, and which exposes an API.

Jason Antman
  • 1,546
  • 1
  • 12
  • 23
  • libvirt has a pretty good API in it's own right, and if you're moving to RHEV, the conversion path is very simple – dyasny Oct 05 '13 at 01:02
  • oVirt is much more likely than RHEV... but still, concerns over 1) making sure it wouldn't mess with current configs, and how it will play with current standalone VMs, and 2) implementation timeline – Jason Antman Oct 05 '13 at 02:51
  • well, standalone hosts are possible in ovirt, but it's not really made for hat, being much better at running virt clusters. Still, I know of quite a few production setups that do the wrong thing and keep VMs on local disks – dyasny Oct 05 '13 at 03:12

2 Answers2

0

You can use virt-manager (a good GUI app under GTK) connect to remote libvirtd on all your hypervisors via TCP or TLS then you can get what you expected from a single client via GUI.

Steps:

  1. install the girt-manager via command yum install virt-manager for RHEL/Fedora or sudo apt-get install virt-manager
  2. make sure your libvirtd accepts remote connection from virt-manager. Refer to the article Libvirt: Remote Support
shawnzhu
  • 643
  • 4
  • 10
  • Sorry I guess I forgot some requirements. Question updated. virt-manager is OK, but not for a distributed team of people, and not when all of the VM hosts are headless. It also doesn't expose an API that I can programmatically query at arbitrary times. – Jason Antman Oct 04 '13 at 16:02
  • @JasonAntman Uh... libvirt IS an API! – Michael Hampton Oct 04 '13 at 18:54
  • @MichaelHampton point taken. What I really want is something to effectively use as a central caching layer that polls all of our libvirt instances, stores state, and then I can query this one API and say "what host is foo.example.com running on, and what's its state". Or even better, that a puppet/facter fact can query for "what physical host am I running on"... – Jason Antman Oct 05 '13 at 02:53
  • @JasonAntman I think you already had your answer before you asked the question. You're still going to have some work bringing your existing VMs under the control of OpenStack or oVirt or whatever you choose, but that's hardly an insurmountable task. – Michael Hampton Oct 05 '13 at 03:01
0

Check out Archipel (also here), which provides a web-based interface for managing and supervising guests on libvirt-supported systems like QEMU/KVM. It works over XMPP with a lightweight agent installed on the host box and a centralized web-based admin and management system. It's technically still in beta, but is pretty well-documented and has an API. This project is also home to my favorite Github FAQ item ever.

nedm
  • 5,610
  • 5
  • 30
  • 52
  • Hmm... ok, thanks, I'll check it out. Still a bit worried about anything that has write/control access to these VMs though... and yes, wonderful FAQ... – Jason Antman Oct 05 '13 at 02:54