spice console in openstack

Documentation for many openstack features exists only in the form of source code. This is a result of everything still being under heavy development. My most recent experience in divining configuration details from python source was related to the use of spice as the console protocol.

I’m told that Redhat is shipping spice enabled by default. Ubuntu still ships with vnc. Converting from vnc to spice should be easy – and it is if you know what nova is looking for. I couldn’t find any practical references in the official documentation nor in any of the various support forums.

Initially, after disabling vnc (‘vnc_enabled=False’ – this is mandatory) and adding the spice configuration options, I was getting libvirt xml files that did not containg any graphics or video stanzas. It turns out that, unlike vnc, spice needs its own tag. Here’s what needs to be appended to nova.conf to bring spice to life:

Controller Node
[spice]
enabled=True
html5proxy_base_url=http://{nova-spiceproxy public IP}:6082/spice_auto.html
keymap=en-us

Compute Nodes
[spice]
agent_enabled=True
enabled=True
html5proxy_base_url=http://{nova-spiceproxy public IP}:6082/spice_auto.html
keymap=en-us
server_listen={private IP of compute node or 0.0.0.0}
server_proxyclient_address={private IP of compute node}

Other notes:
– Be sure to comment out or remove all vnc-related options ~except~ vnc_enabled=False.
– The previous example assumes port 6082 for nova-spiceproxy.
– Ensure that the vncproxy has been disabled and that the spiceproxy is running on this port (or adjust the url’s above accordingly).
– In order to get secure (encrypted) console sessions, you’ll need to enable tls w/ spice.