Hi, please see if following text can help.

To enable vnc console access VMs started by OpenStack, we need many components to collaborate.

  • Components on control node
    • nova-api, which is API server of OpenStack
    • nova-consoleauth, which is used to authorize vnc client
    • noVNC, which is a VNC proxy for browser. An alternative proxy is nova-xvpvncproxy, which can accessed by a Java client at https://github.com/cloudbuilders/nova-xvpvncviewer.
  • Components on compute node
    • nova-compute, which is nova binary to instantiate VMs
    • libvirt driver, which is used by nova-compute to interact with libvirt server
    • VNC server, which is part of hypervisor?

Steps for user to access VNC console


1. user gets the vnc console by command:

[root@robinlinux utils]# nova  get-vnc-console myserver20 novnc
 

nova-api accepts this request, and then sends out "get_vnc_console" message to VM's related compute host

2. nova-compute, running on that compute host accepts that message, generate a token and call libvirt driver's get_vnc_console methods.

3. Libvirt driver will connect with libvirt server to get VM's vnc port, and look up the vnc host from FLAGS.vncserver_proxyclient_address.

4. nova-api will send out "authorize_console" message to nova-consoleauth, which then caches the connection information returned by compute-node with token as key

5. user browsers the URL returned the previous command, like below:

[root@robinlinux utils]# nova  get-vnc-console myserver20 novnc
+-------+----------------------------------------------------------------------------------+
|  Type |                                       Url                                        |
+-------+----------------------------------------------------------------------------------+
| novnc | http://controlnode:6080/vnc_auto.html?token=34ce7a44-6186-43d8-be14-2ea9e028b8fa |
+-------+----------------------------------------------------------------------------------+
 

6. noVNC, which is listening on 6080 HTTP port, accepts the URL request, sends out "check_token" message to nova-consoleauth

7. nova-consoleauth checks the cached connections and returns one according to the requested token key

8. noVNC begins the proxy work, connecting the VNC server

About configuration items in nova.conf

#read by nova-compute to compose vnc-console URL
# for novnc
novncproxy_base_url=http://controlnode:6080/vnc_auto.html
# for xvpvnc
xvpvncproxy_base_url=http://controlnode:6081/console
#read by nova-compute to instantiate VMs
vncserver_listen=controlnode

#read by libvirt driver to compute vnc-console URL
vncserver_proxyclient_address=controlnode
 


-----openstack-bounces+gongysh=cn.ibm....@lists.launchpad.net wrote: -----

To: openstack@lists.launchpad.net
From: Nachi Ueno <ueno.na...@nttdata-agilenet.com>
Sent by: openstack-bounces+gongysh=cn.ibm....@lists.launchpad.net
Date: 04/13/2012 08:33AM
Subject: [Openstack] How to setup vncproxy with ubuntu precise package?

Hi folks

I'm trying to setup vncproxy with ubuntu package on precise.
But I could'nt find document how to setup them.
If you there are information, could you share me?

Thank you in advance
Nachi

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp



_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to