Important: the qemu-init homepage provides now all documentation and additional info.
Recently I moved from VirtualBox to qemu. During this I have had to find a way how to control the virtual machines. Most of them are “headless” and accessible via
ssh only. I gave the quasi standard libvirt a try. But quickly I decided this couldn't be the solution to me for several reasons. It forced me to think about how I can handle the VM's along an alternative way using standard tools. First I have had a look at the
- running headless VM's (background)
- using bridged networking with tap devices
- start/stop VM's cleanly at (re)boot/shutdown
- manage VM's with qemu monitor through telnet (from localhost only)
A webinterface like phpVirtualBox would be welcome, but that's a nice-to-have feature.
As this wasn't the first time that such requirement comes up I used an existing concept of me:
- all stuff that belongs to one VM have to be inside one folder
- files which belongs together
should haveMUST have a unique identifier
- use a main init script to control individual VM's
Additional I decided to use the qemu config dir - usually
/etc/qemu - for config files and stuff shared among virtual machines. The default location for the executables is [mm]/usr/local/sbin [/m.]. As it is may be interesting to others I did create the
Even if it could partially do so, qemu-init is not intended as a full replacement of libvirt. Anyway, I think it follows consequent the KISS principle and could be used for the most required tasks easily.