We have a lab environment we use for RHEV where Spice and VNC ports are blocked from going out.
WebSocket proxy, tech preview in RHEV 3.3 seems like a perfect solution except I can't quite figure
out what to do. All I have been able to find is this in the Manager release notes:
2.8. SPICE Features
These SPICE features have been added for the release of Red Hat Enterprise Virtualization 3.3:
SPICE-HTML5 support (Technology Preview), BZ#974060
Initial support for the SPICE-HTML5 console client is now offered as a technology preview. This feature allows users to connect to a SPICE console from their browser using the SPICE-HTML5 client. The requirements for enabling SPICE-HTML5 are the same as that of the noVNC console, as follows:
On the guest:
The WebSocket proxy must be set up and running in the environment. The engine must be aware of the WebSocket proxy - use engine-config to set the WebSocketProxy option. On the client: The client must have a browser with WebSocket and postMessage support. If SSL is enabled, the engine's Certificate Authority must be imported in the client browser.
And this in the technical notes:
This feature integrates the SPICE-HTML5 console client with Red Hat Enterprise Virtualization Manager, allowing users to connect to the SPICE console from a browser via the SPICE-HTML5 client. For this feature to work, the websocket proxy must be set up and running in the virtualization environment, and the Red Hat Enterprise Virtualization Manager must be aware of the websocket proxy by correctly configuring the WebSocketProxy configuration key using engine-config. Moreover, the client machine must have a browser that supports websockets and postMessage, and the Certificate Authority of the Red Hat Enterprise Virtualization Manager must be imported into the client browser is SSL is enabled.
Outside of RHEV I have found this upstream:
But this also is rather skimpy on 'what to do' and is more about 'you can do it.'
Is there some sort of a cookbook? Or do you have to dig into all the details of Spice, WebSockets, HTML5, and noVNC to make any sense of this? ;)