[openstack-dev] [nova] How to connect to a serial port of an instance via websocket?
Markus Zoeller
mzoeller at de.ibm.com
Thu Oct 30 13:45:08 UTC 2014
The cause of this is that the serialproxy was not started. So nobody
was listening to the port 6083. Validate with:
$ netstat -nat | grep :608
tcp 0 0 0.0.0.0:6080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6081 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.41:60858 192.168.122.41:5672 ESTABLISHED
tcp 0 0 192.168.122.41:60859 192.168.122.41:5672 ESTABLISHED
tcp6 0 0 192.168.122.41:5672 192.168.122.41:60858 ESTABLISHED
tcp6 0 0 192.168.122.41:5672 192.168.122.41:60859 ESTABLISHED
After finding [1] all I had to do was to start this proxy manually with:
$ nova-serialproxy
INFO nova.console.websocketproxy [-] WebSocket server settings:
INFO nova.console.websocketproxy [-] - Listen on 0.0.0.0:6083
INFO nova.console.websocketproxy [-] - Flash security policy server
INFO nova.console.websocketproxy [-] - No SSL/TLS support
(no cert file)
INFO nova.console.websocketproxy [-] - proxying from 0.0.0.0:6083
to None:None
After executing this command, the `netstat` command from above shows a
listener for port 6083:
$ netstat -nat | grep :608
tcp 0 0 0.0.0.0:6080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6081 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6083 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.41:60858 192.168.122.41:5672 ESTABLISHED
tcp 0 0 192.168.122.41:60859 192.168.122.41:5672 ESTABLISHED
tcp6 0 0 192.168.122.41:5672 192.168.122.41:60858 ESTABLISHED
tcp6 0 0 192.168.122.41:5672 192.168.122.41:60859 ESTABLISHED
By using Sahids websocketclient and the URI I got from the command
`nova get-serial-console instance1` the connection gets established and
one will see the login screen (e.g. from cirros).
I was expecting the nova-serialproxy to start automatically when the
section [serial_console] has the entry `enabled=True`. Is this a bug or
do I have a wrong assumption here?
Thanks again Sahid for your help! Thanks to Solly too, for offering JS
help!
[1] OpenStack Nova Developer Docs; "Websocket serial Proxy for OpenStack
Nova serial ports." ;
http://docs.openstack.org/developer/nova/man/nova-serialproxy.html
Markus Zoeller/Germany/IBM wrote on 10/30/2014 11:29:22 AM:
> From: Markus Zoeller/Germany/IBM
> To: "OpenStack Development Mailing List (not for usage questions)"
> <openstack-dev at lists.openstack.org>
> Date: 10/30/2014 11:29 AM
> Subject: [nova] How to connect to a serial port of an instance via
websocket?
>
> On Wed Oct 29 09:42:52 UTC 2014, Sahid Orentino Ferdjaoui wrote:
> >
> > The aim of the feature is exposing an interactive web-based serial
> > consoles through a websocket proxy. The API returns an URL with a
> > valid token that should be used with a websocket client to read/write
> > on the stream.
> >
> > Considering the service nova-serialproxy is running and well
> > configured you can use this simple test purpose client to connect
> > yourself on the URL returned by the API:
> >
> > https://gist.github.com/sahid/894c31f306bebacb2207
> >
> > The general idea behind this service is for example to help debugging
> > VMs when something was wrong with the network configuration.
>
> Hi Sahid,
>
> thanks for your great example! When I execute it I get the error
> socket.error: [Errno 111] Connection refused
> How do I debug this? Did I miss a configuration?
>
> ./lazyclient.py
ws://127.0.0.1:6083/?token=39262891-2588-4872-994b-3be9b7333fd7
> Traceback (most recent call last):
> File "./lazyclient.py", line 27, in <module>
> ws.connect()
> File "/usr/local/lib/python2.7/dist-packages/ws4py/client/
> __init__.py", line 209, in connect
> self.sock.connect(self.bind_addr)
> File "/usr/lib/python2.7/socket.py", line 224, in meth
> return getattr(self._sock,name)(*args)
> socket.error: [Errno 111] Connection refused
More information about the OpenStack-dev
mailing list