summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Young <sleepsonthefloor@gmail.com>2012-03-30 11:15:15 -0700
committerVishvananda Ishaya <vishvananda@gmail.com>2012-03-30 17:29:03 -0700
commitddb3a8d8bf8bd20429d7b8b8806dc5c3bce77b25 (patch)
tree0c996537af310d296b5e1b6bb145f713cd1393b2
parentada63db6be8aa28a0140886b1d7c202f1e66f78e (diff)
downloadnova-ddb3a8d8bf8bd20429d7b8b8806dc5c3bce77b25.tar.gz
Add a faq to vnc docs.
* Also remove an old reference to vnc_redux * Fixes bug 969445 Change-Id: I918aaa8b81f595dea31596c6db4ac40b55d3d6b4
-rw-r--r--doc/source/runnova/vncconsole.rst96
1 files changed, 90 insertions, 6 deletions
diff --git a/doc/source/runnova/vncconsole.rst b/doc/source/runnova/vncconsole.rst
index da96cbfb32..d1c2c65b23 100644
--- a/doc/source/runnova/vncconsole.rst
+++ b/doc/source/runnova/vncconsole.rst
@@ -15,6 +15,79 @@
License for the specific language governing permissions and limitations
under the License.
+FAQ
+===
+Q: What has changed since diablo?
+A: Previously, vnc support was done differently for libvirt and xen.
+Now, there is unified multi-hypervisor support. To support this change,
+configuration options have been added and changed. Also,
+a new required service called nova-consoleauth has been added. If you
+are upgrading from diablo, you will have to take these changes into
+consideration when upgrading.
+
+If you are using diablo, please see the documentation that shipped with
+your code, as this information will not be relevant.
+
+Q: What happened to diablo's nova-vncproxy?
+A: nova-vncproxy was removed from the nova source tree. The essex analog for
+this process is nova-novncproxy, which is provided by an external project.
+
+Q: Why is nova-vncproxy no longer part of nova?
+A: In diablo, we shipped a websocket proxy (nova-vncproxy) with nova, but
+it had poor browser support. This nova-vncproxy code was dependent on external
+noVNC code, so changes to that system involved updating 2 projects.
+Due to the rapid evolution of websocket tech, and the tight dependence of
+the websocket proxy on javscript and html components, we decided to keep that
+code all in one place.
+
+Q: What is the difference between nova-xvpvncproxy and nova-novncproxy?
+A: nova-xvpvncproxy, which ships with nova, is a new proxy that supports
+a simple java client. nova-novncproxy uses noVNC to provide vnc support
+through a web browser.
+
+Q: I want VNC support in horizon. What services do I need?
+A: You need nova-novncproxy, nova-consoleauth, and correctly configured
+compute hosts.
+
+Q: When I use "nova get-vnc-console" or click on the vnc tab of Horizon,
+it hangs. Why?
+A: Make sure you are running nova-consoleauth (In addition to nova-novncproxy).
+The proxies rely on nova-consoleauth to validate tokens, and will wait for
+a reply it them until a timeout is reached.
+
+Q: My vnc proxy worked fine during my All-In-One test, but now it doesn't work
+on multi host. Why?
+A: The default flag values work for an All-In-One install, but changes must
+be made on your compute hosts once you start to build a cluster. As an
+example, suppose you have 2 servers::
+
+ PROXYSERVER (public_ip=172.24.1.1, management_ip=192.168.1.1)
+ COMPUTESERVER (management_ip=192.168.1.2)
+
+Your nova-compute configuration file would need the following values::
+
+ # These flags help construct a connection data structure
+ vncserver_proxyclient_address=192.168.1.2
+ novncproxy_base_url=http://172.24.1.1:6080/vnc_auto.html
+ xvpvncproxy_base_url=http://172.24.1.1:6081/console
+
+ # This is the address where the underlying vncserver (not the proxy)
+ # will listen for connections.
+ vncserver_listen=192.168.1.2
+
+Note that novncproxy_base_url and novncproxy_base_url use a public ip; this
+is the url that is ultimately returned to clients, who generally will not
+have access to your private network. Your PROXYSERVER must be able to reach
+vncserver_proxyclient_address, as that is the address over which the vnc
+connection will be proxied.
+
+See "Important nova-compute Options" for more information.
+
+Q: My noVNC does not work with recent versions of web browsers. Why?
+A: Make sure you have python-numpy installed, which is required to support
+a newer version of the WebSocket protocol (HyBi-07+). Also, if you are
+using diablo's nova-vncproxy, note that support for this protocol is not
+provided.
Overview
========
@@ -27,8 +100,10 @@ The VNC console Connection works as follows:
* User connects to api and gets an access_url like http://ip:port/?token=xyz
* User pastes url in browser or as client parameter
* Browser/Client connects to proxy
-* Proxy authorizes users token, maps the token to the -private- host and port
- of an instance's VNC server, which is located on the compute host.
+* Proxy talks to nova-consoleauth to authorize the user's token,
+ and then maps the token to the -private- host and port
+ of an instance's VNC server. The compute host specifies the what address
+ the proxy should use to connect via the flag --vncserver_proxyclient_address.
In this way, the vnc proxy works as a bridge between the public network,
and the private host network.
* Proxy initiates connection to VNC server, and continues proxying until
@@ -69,6 +144,8 @@ A typical deployment will consist of the following components:
For simple deployments, this service typically will run on the same machine
as nova-api, since it proxies between the public network and the private
compute host network.
+ * One or more compute hosts. These compute hosts must have correctly
+ configured flags, as described below.
Getting an Access Url
@@ -78,7 +155,16 @@ Support for accessing this url is provided by novaclient:
::
- nova get-vnc-console [server_id] [xvpvnc|novnc]
+ nova get-vnc-console [server_id] [novnc|xvpvnc]
+
+Specify 'novnc' to retrieve a url suitable for pasting into a web browser. Specify
+'xvpvnc' for a url suitable for pasting into the java client.
+
+So to request a web browser url:
+
+::
+
+ nova get-vnc-console [server_id] novnc
Important nova-compute Options
@@ -147,15 +233,13 @@ nova-vncproxy replaced with nova-novncproxy
-------------------------------------------
The previous vnc proxy, nova-vncproxy, has been removed from the nova source
tree and replaced with an improved server that can be found externally at
-http://github.com/cloudbuilders/noVNC.git (in a branch called vnc_redux while
-this patch is in review).
+http://github.com/cloudbuilders/noVNC.git
To use this nova-novncproxy:
::
git clone http://github.com/cloudbuilders/noVNC.git
- git checkout vnc_redux
utils/nova-novncproxy --flagfile=[path to flagfile]
The --flagfile param should point to your nova config that includes the rabbit