VNC Console Connector - BYUHPC/7lbd GitHub Wiki

The VNC Console Connector provides direct access to the qemu console. This is very useful to diagnose boot issues. Unfortunately, accessing Microsoft Windows through the qemu console has significant lag and poor overall performance

Connection Architecture

The VM Console connector connects to the qemu console using the built-in noVNC client that is part of Open OnDemand. The VNC Connector script calls websockify and accepts incoming connections on a file descriptor inherited from the spank_iso_netns plugin. It talks to the Windows VM running on qemu through a Unix socket.

7lbd VM Console Connectors(1)

Authentication & Security

Automatic logins through VNC were not included in the code. You will need to use a password to login.

Tokens are required and passed through Open OnDemand.

Encryption is not enabled on websockify by default in the 7lbd code. This interface is not expected to be used for anything other than debugging test sessions when there are boot issues. That being said, if Open OnDemand is running with https, then the user's websocket connection will be encrypted between their browser and wherever the encryption is terminated for the Open OnDemand website. The traffic will be unencrypted between the Open OnDemand website and the compute node running websockify.

Configuration

Enable/disable VNC access in before.sh.erb:

export ws_console_enabled=1

Setting ws_console_enabled=1 enables VNC access, while ws_console_enabled=0:

  • Disables websockify service from running as part of the Open OnDemand job
  • Removes VNC button from job card interface