...
Log in to the API Server as an administrator
Install and load
mod_proxy_wstunnel
Edit
/etc/httpd/conf.modules.d/00-proxy.conf
Go to the end and add
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
Edit
/etc/httpd/conf.d/abiquo.conf
and add oneLocation
for each Remote services server. For example, for two servers:Code Block <Location /wsdata> ProxyPass wss://rs1.cloud.example.com:7070 ttl=20 timeout=20 ProxyPassReverse wss://rs1.cloud.example.com:7070 Require all granted </Location> <Location /wsdata2> ProxyPass wss://rs2.cloud.example.com:7070 ttl=20 timeout=20 ProxyPassReverse wss://rs2.cloud.example.com:7070 Require all granted </Location>
Edit the
/etc/httpd/conf.d/abiquo.conf
file and at the end of theVirtualHost
section, add the SSL Proxy EngineCode Block SSLProxyEngine On
Check the DNS values in the
/etc/resolv.conf
For each Abiquo datacenter, log in to each Remote Services server
Install the WebMKS proxy package
Code Block yum install abiquo-webmks-proxy
This will install NGINX and its configuration files, and also enable it in systemctl.
Edit the server configuration at
/etc/nginx/nginx.conf
For
listen
, if you are using another port, change the default of7070
Set the
ssl_certificate
andssl_certificate_key
with the location of the UI certificate files. NGINX must have access to these files.If you are using domain names for your ESXi servers, in the
location
configure theresolver
to point to your DNS servers.If this is a distributed environment and the API server has another IP, set
server_name
to_
Code Block worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 100; server { listen 7070 ssl; server_name localhost; ssl_certificate /etc/pki/abiquo/cloud.example.com.crt; ssl_certificate_key /etc/pki/abiquo/cloud.example.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass https://$arg_ip:443; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; resolver 10.95.11.5 10.95.11.6; } } }
Add these firewall rules on the Remote Services servers, if the API server has a different IP address from the Remote Services servers (not a monolithic environment),
Code Block firewall-cmd --permanent --zone=public --add-port=7070/tcp firewall-cmd --permanent --zone=public --add-port=7070/udp firewall-cmd --permanent --zone=public --add-port=4822/tcp service firewalld reload
On the Remote Services servers, edit
abiquo.properties
Define the WebMKS proxy path, for example:
Code Block com.abiquo.esxi.webmks.proxypath = api.cloud.example.com/wsdata
The value is the FQDN and Location of the proxy in Apache on the API Server (without the protocol)
Enable For Abiquo versions prior to Abiquo 6.1.2, enable WebMKS for all VMs with no VNC configuration
As always, after changingCode Block com.abiquo.esxi.webmks = true
For a Monolithic environment also set the force property
Code Block com.abiquo.esxi.webmks.force
To activate the changes to properties, restart the Tomcat server.
Restart the services
On the Remote Services server, restart NGINX
On the API Server, restart the Apache HTTPD service
...