This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
nova-rdp [2013/12/23 03:12] admin |
nova-rdp [2014/01/10 23:56] admin |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nova RDP Support====== | + | ====== Nova RDP Support |
Nova currently provides support for [[http:// | Nova currently provides support for [[http:// | ||
+ | |||
+ | [[http:// | ||
---- | ---- | ||
+ | ===== Configuring Nova for RDP support ===== | ||
+ | RDP console configuration is quite straightforward. All you need to do is to add the following configuration settings in your Hyper-V compute node's **nova.conf**: | ||
- | ===== Getting an RDP console URL ===== | + | [rdp] |
- | + | | |
- | This requires a public API which is symmetric with the VNC and SPICE ones. | + | |
- | + | ||
- | ==== Get an RDP console URL: V2 API ==== | + | Where the url specified |
- | + | ||
- | ^Verb ^URI ^Description ^ | + | |
- | |GET |/ | + | |
- | + | ||
- | Normal Response Code(s): 200 | + | |
- | + | ||
- | Error Response Code(s): badRequest (400), itemNotFound (404), buildInProgress (409) | + | |
- | + | ||
- | + | ||
- | === Example. Get RDP console URL request: XML === | + | |
- | + | ||
- | <code xml> | + | |
- | <?xml version=" | + | |
- | < | + | |
- | </ | + | |
- | + | ||
- | === Example. Get RDP console URL request: JSON === | + | |
- | + | ||
- | <code javascript> | + | |
- | { | + | |
- | | + | |
- | " | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | === Example. Get RDP console URL response: XML === | + | |
- | + | ||
- | <code xml> | + | |
- | <?xml version=' | + | |
- | | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | </ | + | |
- | + | ||
- | === Example. Get RDP console URL response: JSON === | + | |
- | + | ||
- | <code javascript> | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== Get an RDP console URL: V3 API ==== | + | |
- | + | ||
- | ^Verb ^URI ^Description ^ | + | |
- | |GET |/ | + | |
- | + | ||
- | Normal Response Code(s): 200 | + | |
- | + | ||
- | Error Response Code(s): badRequest (400), itemNotFound (404), buildInProgress (409) | + | |
- | + | ||
- | === Example. Get RDP console URL request: XML === | + | |
- | + | ||
- | <code xml> | + | |
- | <?xml version=" | + | |
- | < | + | |
- | </ | + | |
- | + | ||
- | === Example. Get RDP console URL request: JSON === | + | |
- | + | ||
- | <code javascript> | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | } | + | |
- | </code> | + | |
- | + | ||
- | === Example. Get RDP console URL response: XML === | + | |
- | + | ||
- | Same output as in the [[nova-rdp# | + | |
- | + | ||
- | === Example. Get RDP console URL response: JSON === | + | |
- | + | ||
- | Same output as in the [[nova-rdp# | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Getting console connection details ===== | + | |
- | + | ||
- | Nova includes internally the required proxy solutions for VNC (novnc, xvpvnc) and SPICE, but this is not the case for RDP. Beside that, it's also desirable to leave to third party the ability to choose a custom graphical console UI solution not necessarily included with Nova. A public API has been provided | + | |
- | + | ||
- | ==== Get console connection info: V2 API ==== | + | |
- | + | ||
- | ^Verb ^URI ^Description ^ | + | |
- | |GET |/ | + | |
- | + | ||
- | Normal Response Code(s): 200 | + | |
- | + | ||
- | Error Response Code(s): badRequest (400), itemNotFound (404) | + | |
+ | ===== Installing and configuring the FreeRDP HTML5 proxy ===== | ||
- | === Example. Get console connection request: XML === | + | The FreeRDP HTML5 proxy can be installed on various Linux distributions (currently Ubuntu >= 12.04, RHEL 6.x / CentOS 6.x and Fedora >= 16) or on Microsoft Windows, including Hyper-V Server. |
- | <code xml> | + | ==== Ubuntu 12.04 and above ==== |
- | <?xml version="1.0" encoding=" | + | |
- | < | + | |
- | </ | + | |
- | === Example. Get console connection request: JSON === | + | A shell script is provided to simplify the installation of the application and the dependencies, |
- | <code javascript> | + | sudo apt-get install -y git |
- | { | + | git clone https:// |
- | | + | |
- | } | + | |
- | </code> | + | sudo ./setup_all.sh -i -f |
+ | |||
+ | At this point the proxy, called **wsgate** can be installed by running: | ||
- | === Example. Get console connection response: XML === | + | sudo make install |
- | <code xml> | + | ==== wsgate configuration ==== |
- | <?xml version=' | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | </ | + | |
- | === Example. Get console connection response: JSON === | + | The default configuration file is located here: |
- | <code javascript> | + | / |
- | { | + | |
- | | + | Change the following options to match your environment configuration: |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | ==== Get console connection info: V3 API ==== | + | [global] |
+ | port = 8000 | ||
- | ^Verb ^URI ^Description ^ | + | Note: make sure to open the port in your operating system firewall. |
- | |GET |/ | + | |
- | Normal Response Code(s): 200 | + | [openstack] |
+ | authurl = http:// | ||
+ | username = admin | ||
+ | password = secret | ||
+ | tenantname = admin | ||
- | Error Response Code(s): badRequest (400), itemNotFound (404) | + | [hyperv] |
+ | # Credentials used to connect to the Hyper-V hosts when accessing | ||
+ | # OpenStack instances consoles | ||
- | === Example. Get console connection request: XML === | + | hostusername |
+ | hostpassword | ||
- | <code xml> | + | It is also strongly recommended to encrypt the traffic using HTTPS. Here are the relevant parameters, including a PEM file containing both the certificate and the private key. |
- | <?xml version=" | + | |
- | < | + | |
- | </ | + | |
- | === Example. Get console connection request: JSON === | + | [ssl] |
+ | port = 4430 | ||
+ | certfile | ||
+ | certpass | ||
- | <code javascript> | + | HTML, CSS and Javascript files are available at the following location for further customization: |
- | { | + | |
- | " | + | |
- | } | + | |
- | </ | + | |
- | === Example. Get console connection response: XML === | + | / |
- | Same output | + | ==== Running wsgate ==== |
+ | |||
+ | wsgate can be executed | ||
- | === Example. Get console connection response: JSON === | + | wsgate -c / |
- | Same output as in the [[nova-rdp# | + | In case you should prefer to execute wsgate |
+ | [global] | ||
+ | daemon = false | ||