Archipel Virtualisation with the Goodness of XMPP
Would you like to connect your virtualisation infrastructure with your IM client? Is getting remote access to your Virtual Machines (VMS) from anywhere crucial to you? Do you need fine grained permissions management for your team of administrators? If you
Archipel is one of those wonderful open source products that mix technologies in such an innovative way that it puts even the biggest players to shame. Yes, who knew you could build a virtualisation solution with an XMPP server? Well, Archipel has just done that and in such a beautiful way! All components here communicate with each other through XMPP messages and this allows push noti cations for any events that occur in the VMS. What’s more, you can even say Hi to your VMS over chat and ask them how they are doing. Now that is something everyone should be looking forward to! Archipel is made to be compatible with almost every hypervisor including KVM, Openv , Sun's Virtualbox, Xen and Vmware. As of now, it only supports KVM/ MU virtualisation, though according to its website, Support for Xen is coming soon.
The architecture
Archipel is basically made up of three components, i.e., the Archipel client, the Archipel agent and the XMPP server. The XMPP server is something that resides between all the components and allows them to communicate with each other. At present, Archipel recommends using only ejabberd or Open re for XMPP communication, though you might want to try out others on your own. ach Virtual Machine has its own individual XMPP connection and list of contacts that can be communicated from anywhere using XMPP. Imagine shutting
down and restarting your Virtual Machines from Google Talk over your Android phone! Yes, the future is here!
As for the Archipel agent, it runs on the virtualisation server and with the help of libvirt, Python and xmpppy, provides an interface for the client Web app to communicate with the hypervisors and VMS. The client Web app, on the other hand, is based on Objective-j and is developed on the Cappuccino Javascript framework that gives us an eyecatching UI.
Starting up
After everything is installed and is up and running, you can go to the Archipel Web app and enter your login credentials (Figure 1) as you did while installing ejabberd or any Jabber server that you might have used. After you get authenticated and a bit of loading, you'll be able to see the UI of Archipel. Here, you'll be able to add your hypervisor to your contacts with its Jabber ID and assign a nickname to it (Figure 2). You can even add other members of your team and talk to them right from this interface. It is like having an IM client along with a virtualisation solution.
To create a new VM, you can click on the hypervisor, then go to the Virtual Machines tab and click the plus button at the bottom. After you name the VM, and accept its subscription request, you'll be able to see that it has been added to your contacts on the left. On clicking the name of a particular VM, you'll be able to see various tabs on the right that allow you to con gure and start/stop your machine. Archipel also provides a small VNC console that displays the screen of the VM and allows you to zoom in or out of the current view, etc (Figure 3).
To get started on configuring a machine, you can set up various parameters related to the memory, the number of CPUS, etc, from the definition tab at the top. You will also have to create a new hard disk for the machine from the Disks tab at the top. Archipel supports qcow2, qcow, cow and raw formats for this. This hard disk now also needs to be added in the Definition-> Virtual Medias tab. You might also want to add virtual network interfaces in the Definition-> Virtual Nics tab. After everything is set up, just copy the ISO of the OS you want to install into the / vm/ iso directory and change the boot device to cdrom after adding the path to the ISO in the Definition-> Virtual Medias tab, just like you added the hard disk before. You are now good to go, and ready to press that big ' Run' button at the top of the screen. Hopefully, you'll be able to see your machine booting up in the VNC console if everything goes well ( Figure 4). Don't forget to chat up with your machine from the Chat tab ( Figure 5). Ask it, “How are you?” and it will reply with a status report on what it is doing along with some statistics. To check out what more you can do, type in ' Help' and you will be shown a list of possible commands. The amazing graph visualisations on the statistics of the machines can be viewed from the Health tab of your Hypervisor ( Figure 6). You can also see logs for all the machines under this tab when you click the Logs button.
Appliances, Vmcasts, groups and more...
Archipel has a lot more to it than just its good looks. It even provides advanced management tools like Vmcasts and Appliances, which allow you to subscribe to a feed of VMS like an RSS feed that is published from the XMPP server. It uses the XVM2 template format for this purpose. Another great aspect of Archipel is the awesome permissions system, which goes in-depth when granting permissions and allows you to create groups of contacts/ VMS logically—assigning roles to each user that are related to what they can do in each machine. The lack of this feature often proves to be a deal breaker in many enterprise environments. Apart from this, it also supports industry standard features like cloning, scheduling actions, snapshots, live migration, etc. You can check out the Archipel wiki for details related to how you can go about using each feature.
The verdict
Frankly, everyone who hears about Archipel for the first time and the kind of features it provides will be impressed. It is quite easy to set up, use and manage. I'm not sure about how mature the code might be and the kind of bugs that may appear, but it is definitely worth giving a try. The team of developers is very supportive, though there is no commercial support available as of yet ( the website does mention that it is Coming soon ) . But, if you deploy it in production, you're on your own. Above all that, it is a great choice for virtualisation in enterprise environments where remote access for VMS is crucial and when you need to manage thousands of VMS. What’s more, with the project being developed on top of libvirt, you can expect some cross- hypervisor goodness too.