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:13] admin |
nova-rdp [2014/01/10 23:57] admin |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nova RDP Support====== | + | ====== Nova RDP Support |
Nova currently provides support for [[http:// | Nova currently provides support for [[http:// | ||
+ | [[http:// | ||
- | ---- | ||
- | |||
- | |||
- | ===== Getting an RDP console URL ===== | ||
- | |||
- | This requires a public API which is symmetric with the VNC and SPICE ones. | ||
---- | ---- | ||
+ | ===== Configuring Nova for RDP support ===== | ||
- | ==== Get an RDP console URL: V2 API ==== | + | RDP console |
- | + | ||
- | ^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> | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | === 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' | + | |
- | + | ||
- | ==== Get console connection info: V2 API ==== | + | |
- | + | ||
- | ^Verb ^URI ^Description ^ | + | |
- | |GET |/ | + | |
- | + | ||
- | Normal Response Code(s): 200 | + | |
- | Error Response Code(s): badRequest (400), itemNotFound (404) | + | [rdp] |
+ | enabled=True | ||
+ | html5proxy_base_url=http:// | ||
+ | |||
+ | Where the url specified in the **html5proxy_base_url** setting is provided by the FreeRDP HTML5 proxy as detailed in the next section. | ||
+ | ===== 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:// |
- | | + | |
- | } | + | sudo ./setup_all.sh -i -f |
- | </code> | + | |
+ | 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 | ||