Implement Guacamole Desktop (GUI) Support
!335 (merged) introduces Guacamole support, initially just a shell (terminal). Guacamole can also deliver a web-based streaming desktop environment -- let's make it happen!
- Will need to pick a VNC server; Guacamole manual seems to recommend RealVNC or TigerVNC.
- GUI desktop additionally needs:
- At server deploy time:
- Exosphere (probably in cloud-init code) needs to determine if instance has a GUI desktop environment, figure out how to do this
- This means we cannot set VNC status in
exoGuac
metadata when the server is launched, like we do now. cloud-init will need to determine whether the server has a desktop environment (i.e. whether VNC will be enabled) and write this to the console log, which Exosphere will use to set appropriate metadata. - If there is a desktop environment, cloud-init code should set up a VNC server on each instance, exposed only to guacd
- After deployment:
- Exosphere needs to know if instance is set up for Guacamole Desktop, which determines whether to expose functionality to user
- Shared secret between VNC server and Exosphere (to be passed in Guacamole token request)
- Maybe same as HMAC shared secret, or maybe just use server password.
- At server deploy time:
Edited by Chris Martin