On Thu, 2021-08-05 at 12:25 -0500, number9 wrote:
I have posted this on stackexchange, but am also asking here:
Running openstack on Ubuntu 20.04 with a controller node and four compute nodes. I am reading the instructions on configuring SPICE here. I will admit, I found out about which packages to install from other sites, as the instructions at the link do not actually list any software that needs to be installed.
On the compute nodes and controller, I installed nova-spiceproxy On the controller I installed nova-spiceproxy and spice-html5
Not an answer, but as an aside SPICE support is poorly maintained in nova and its usage not generally advised. It may be removed in a future release. I would suggest relying on noVNC instead. With that said...
I followed the instructions in the link on configuring /etc/nova/nova.conf on the controller and all compute nodes.
In a nutshell, when you click on console in the dashboard, it simply says:
Something went wrong!
An unexpected error has occurred. Try refreshing the page. If that doesn't help, contact your local administrator.
I have parsed every log in /var/log on the compute and controller nodes and found nothing that would indicate it is failing.
On the compute node, I can do a ps aux and see that spice is running on the instance I am trying to connect to.
I am really not sure where to go. I have tried VNC and noVNC also to no avail, each time completely removing the old configs and only adding the new. I have reverted back to SPICE to try the "simple" approach.
My relevant config items in /etc/nova/nova.conf from a compute node are:
[DEFAULT] vnc_eanabled = false
There's a typo here, but it shouldn't matter - that config option has been replaced by the '[vnc] enabled' option below. The doc clearly needs an update. As another aside, because virtually everyone seems to use an installer, the actual install guides get very TLC and are subsequently prone to bitrot :( However, the remote console doc at [1] was updated in recent releases and should be relatively accurate. [1] https://docs.openstack.org/nova/latest/admin/remote-console-access.html
# yes, I know it is redundant, I am following the docs...
[vnc] enabled = false
[spice] enabled = true agent_enabled = true html5proxy_base_url = http://10.131.39.40:6082/spice_auto.html # the above IP is the IP of the controller. server_listen = 0.0.0.0 server_proxyclient_address = 10.131.29.42
So I assume '10.131.39.40' is address of the controller and '10.131.29.42' is the address of the compute node, yes? Is the former publicly accessible from the same place you're browsing the web UX? I would assume not, given it's a private network IP. If not, this needs to be updated. This is the value returned from the API which is in turn used by Horizon iirc.
# the above IP is the IP of the controller that I pulled this config from html5proxy_host = 0.0.0.0 html5proxy_port = 6082
These are redundant (they match the defaults) but also no harm so...
Back on the controller node, in /etc/nova/nova.conf I have:
[spice] enabled = true agent_enabled = false html5proxy_host = 0.0.0.0 html5proxy_port = 6082 keymap = en_us
This all looks correct to me. Somewhat unrelated: I'm not certain whether this is true for SPICE, but you should not configure the keymap option for VNC. It's the source of bugs since the QEMU-based keymaps this enables are incomplete and buggy. Better to use a newer version of noVNC that supports native keymapping.
I also have vnc false, as it is on the compute nodes. I will admit further, I have tried at least 20 iterations of this, just leaving off proxy ports, or thinking for a moment that the proxyclientaddress was the controller node, but none of them work. I do restart nova on the controller and all compute nodes after every change.
Any ideas or directions would be appreciated. I wish there were logs, I am perhaps missing them or need to turn on debugging of some kind.
I suspect the issue is with the address used for '[spice] html5proxy_base_url'. I would suggest using the 'openstack console url show' command to get a URL to access the console without needing to invoke Horizon. If you're able to access this URL then the issue is instead somewhere in Horizon. If not, it's definitely nova. You can also enable debug-level logging for the nova-spicehtml5proxy and nova-novncproxy services to ensure you're actually seeing a connection from your browser. Hopefully this helps somewhat, Stephen