<font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><div><p>Hi, please see if following text can help.<br>
</p><p>To enable vnc console access VMs started by OpenStack, we need many components to collaborate.</p>
<ul><li>
Components on control node
<ul><li>
nova-api, which is API server of OpenStack</li><li>
nova-consoleauth, which is used to authorize vnc client</li><li>
noVNC, which is a VNC proxy for browser. An alternative proxy is
nova-xvpvncproxy, which can accessed by a Java client at
<a class="moz-txt-link-freetext" href="https://github.com/cloudbuilders/nova-xvpvncviewer">https://github.com/cloudbuilders/nova-xvpvncviewer</a>.</li></ul>
</li><li>
Components on compute node
<ul><li>
nova-compute, which is nova binary to instantiate VMs</li><li>
libvirt driver, which is used by nova-compute to interact with libvirt server</li><li>
VNC server, which is part of hypervisor?</li></ul>
</li></ul>
<h1>
Steps for user to access VNC console</h1>
<p>
<br>
1. user gets the vnc console by command:</p>
<table style="width: 100%;" border="0" cellpadding="1" cellspacing="1">
<tbody>
<tr>
<td style="background-color: grey;">
[root@robinlinux utils]# nova get-vnc-console myserver20 novnc<br>
</td>
</tr>
</tbody>
</table>
<p>
nova-api accepts this request, and then sends out "get_vnc_console" message to VM's related compute host</p>
<p>
2. nova-compute, running on that compute host accepts that message,
generate a token and call libvirt driver's get_vnc_console methods.</p>
<p>
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.</p>
<p>
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</p>
<p>
5. user browsers the URL returned the previous command, like below:</p>
<table style="width: 100%;" border="0" cellpadding="1" cellspacing="1">
<tbody>
<tr>
<td style="background-color: grey;">
[root@robinlinux utils]# nova get-vnc-console myserver20 novnc<br>
+-------+----------------------------------------------------------------------------------+<br>
| Type | Url |<br>
+-------+----------------------------------------------------------------------------------+<br>
| novnc | <a class="moz-txt-link-freetext" href="http://controlnode:6080/vnc_auto.html?token=34ce7a44-6186-43d8-be14-2ea9e028b8fa">http://controlnode:6080/vnc_auto.html?token=34ce7a44-6186-43d8-be14-2ea9e028b8fa</a> |<br>
+-------+----------------------------------------------------------------------------------+<br>
</td>
</tr>
</tbody>
</table>
<p>
6. noVNC, which is listening on 6080 HTTP port, accepts the URL request, sends out "check_token" message to nova-consoleauth</p>
<p>
7. nova-consoleauth checks the cached connections and returns one according to the requested token key</p>
<p>
8. noVNC begins the proxy work, connecting the VNC server</p>
<h1>
About configuration items in nova.conf</h1>
<table style="width: 100%;" border="0" cellpadding="1" cellspacing="1">
<tbody>
<tr>
<td style="background-color: grey;">
#read by nova-compute to compose vnc-console URL<br>
# for novnc<br>
novncproxy_base_url=<a class="moz-txt-link-freetext" href="http://controlnode:6080/vnc_auto.html">http://controlnode:6080/vnc_auto.html</a><br>
# for xvpvnc<br>
xvpvncproxy_base_url=<a class="moz-txt-link-freetext" href="http://controlnode:6081/console">http://controlnode:6081/console</a><br>
#read by nova-compute to instantiate VMs<br>
vncserver_listen=controlnode<br>
<br>
#read by libvirt driver to compute vnc-console URL<br>
vncserver_proxyclient_address=controlnode<br>
</td>
</tr>
</tbody>
</table>
</div><div><br><div><br></div><font color="#990099">-----openstack-bounces+gongysh=cn.ibm.com@lists.launchpad.net wrote: -----<br><br></font><blockquote style="padding-right: 0px; padding-left: 5px; margin-left: 5px; border-left: 2px solid #000000; margin-right: 0px;">To: <a class="moz-txt-link-abbreviated" href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>From: Nachi Ueno <a class="moz-txt-link-rfc2396E" href="mailto:ueno.nachi@nttdata-agilenet.com"><ueno.nachi@nttdata-agilenet.com></a><br>Sent by: <a class="moz-txt-link-abbreviated" href="mailto:openstack-bounces+gongysh=cn.ibm.com@lists.launchpad.net">openstack-bounces+gongysh=cn.ibm.com@lists.launchpad.net</a><br>Date: 04/13/2012 08:33AM<br>Subject: [Openstack] How to setup vncproxy with ubuntu precise package?<br><br><font face="Courier New,Courier,monospace" size="3">Hi folks<br><br>I'm trying to setup vncproxy with ubuntu package on precise.<br>But I could'nt find document how to setup them.<br>If you there are information, could you share me?<br><br>Thank you in advance<br>Nachi<br><br>_______________________________________________<br>Mailing list: <a href="https://launchpad.net/%7Eopenstack">https://launchpad.net/~openstack</a><br>Post to : <a class="moz-txt-link-abbreviated" href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>Unsubscribe : <a href="https://launchpad.net/%7Eopenstack">https://launchpad.net/~openstack</a><br>More help : <a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><br><br></font>
</blockquote><br></div></font>
<br/>