incubator-cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wido den Hollander <w...@widodh.nl>
Subject Using libguestfs for modifying (System) VM's
Date Sat, 21 Apr 2012 11:50:07 GMT
Hi,

I'm not a big fan of all the bash scripts which are being called on KVM 
system for deploying the System VM's.

They try to mount the guest, inject data (like SSH keys) and then 
continue the boot process of the guest.

It's something I don't like and I think libguestfs [0] can help here.

With guestfish [1] you can access the VM and modify its filesystem:

guestfish <<_EOF_
  add disk.img
  run
  mount /dev/vda1 /
  write-append /root/.ssh/authorized_keys "ssh-rsa XXXXXX...."
  _EOF_

Imho this would be a much cleaner way to modify the System VM's without 
having to set up loop devices, mount them, etc, etc.

The nice thing with libguestfs is that you can access the VM's while 
they are running (use with caution!), so that gives you much more 
flexibility!

There is a native C API, but there also seem to be Java bindings [2], so 
that could make it much cleaner to integrate into CloudStack.

libguestfs also seems to be present in Fedora [3] and in RHEL 6, so that 
shouldn't be a problem.

Searching the web showed me some reports of libguestfs and CloudStack, 
but browsing the code I found no reference to this.

Something worth looking at I think?

Wido

[0]: http://libguestfs.org/
[1]: http://libguestfs.org/guestfish.1.html
[2]: http://libguestfs.org/guestfs-java.3.html
[3]: https://fedoraproject.org/wiki/Features/libguestfs

Mime
View raw message