What is ruby-libvirt? ruby-libvirt provides Ruby bindings for libvirt. With them you can use libvirt directly from your Ruby programs: require 'libvirt' conn = Libvirt::open("qemu:///system") puts conn.capabilities conn.create_domain_xml(File.read("domain.xml")) dom = conn.lookup_domain_by_name("mydomain") dom.suspend dom.resume puts dom.xml_desc To get a better idea of what's possible to achieve