IPMI/BMC Console access

For console access to work, you need to set up a proxy that can parse input parameters with a session token and port, use it to set the ses6 cookie required by DCIManager and redirect the user to the prepared console URL.

Below is an example configuration for NGINX that can be used to provide console access.

server { listen 443 ssl; server_name console.hostname.com; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_http_version 1.1; include /etc/nginx/ssl.conf; location /hbproxy { if ($args ~* "token=(?<token>[^&]+)&port=(?<port>\d+)") { add_header Set-Cookie "ses6=$token; Path=/;"; rewrite ^ /ipmiproxy/web/vnc/$port? redirect; } } location / { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_http_version 1.1; proxy_set_header Host $host; proxy_pass "https://dci.hostname.com/$request_uri"; proxy_buffering off; client_max_body_size 0; proxy_connect_timeout 13600s; proxy_read_timeout 13600s; proxy_send_timeout 13600s; send_timeout 13600s; } }

Example configuration for Apache server

<VirtualHost *:443> SSLEngine on SSLProxyEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLProxyVerify none SSLProxyCheckPeerCN off Define BACKEND_HOST "dci.hostname.com" Define BACKEND_URL "https://${BACKEND_HOST}/" ProxyPreserveHost On ProxyPass /hbproxy ! ProxyPass /ipmiproxy/web/vnc/ ${BACKEND_URL}/ipmiproxy/web/vnc/ ProxyPassReverse /ipmiproxy/web/vnc/ ${BACKEND_URL}/ipmiproxy/web/vnc/ ProxyPass /ipmiproxy/ws/ wss://${BACKEND_HOST}/ipmiproxy/ws/ ProxyPassReverse /ipmiproxy/ws/ wss://${BACKEND_HOST}/ipmiproxy/ws/ RewriteEngine On RewriteCond %{QUERY_STRING} token=([^&]+)&port=(\d+) RewriteRule ^/hbproxy /ipmiproxy/web/vnc/%2? [R,L,CO=ses6:%1:%{HTTP_HOST}] ProxyRequests Off ProxyTimeout 13600 Timeout 13600 </VirtualHost>

Change console.hostname.com to a subdomain you want to use for the console, and set https://dci.hostname.com/ to the DCIManager server address.

The last step is configuring your DCIManager App in Hostbill to use the new console address.

Navigate to Settings > Apps > {DCIManager App}, and update Console URL to:
https://console.hostname.com/