Basic Guacamole/OpenNebula integration

Hi everyone,

First of all congratulations to the OpenNebula team on the 5.8 release! :slight_smile:

I just wanted to share something that I’ve been working on - adding basic Guacamole support to OpenNebula 5.8. I am by no means a programmer, but with a lot of trial and error I have something to show. It’s by no means production quality, but I have reached the limit of my abilities so. My hope is that someone can make use of this for their own project, and perhaps improve upon it.

When a VM is set to use VNC for remote desktop, the modifications will add a “GUAC” button next to the “VNC” button in the VM detail view in admin, groupadmin, and user views. It will also change the remote desktop button in cloud view to default to a Guacamole connection. The remote desktop button in VM list view remains the standard VNC client.

These buttons will attempt to connect to a Guacamole client which must be installed on the Sunstone server, listening on port 8080.

The relevant files, installation instructions, and known issues are detailed at https://github.com/BarrieAlmond/GuacNebula . Any feedback is welcome, and I’ll do what I can to help. :slight_smile:

2 Likes

I’m not sure if anyone is currently using this, but I have make tweaks to enable file and print redirection in RDP connections (available from the Guacamole home screen after connecting via VNC - press ctrl-alt-shift to get the Guacamole menu).

Audio redirection is also enabled, but this currently doesn’t work (at least with KVM). I suspect OpenNebula is launching KVM without enabling sound hardware and I’m not sure right now how to change this. :slight_smile:

The only file that has changed is sunstone/models/SunstoneServer.rb, so just overwrite your own and restart Sunstone.

edit: Audio works in some VMs and not others so it’s probably an OS thing.

@balmond thanks for your contribution, we are working on your code to place this functionality in sunstone

1 Like

@jlobo that’s great, let me know if there’s anything in there that doesn’t make sense and I’ll try to explain it :slight_smile: