Advanced Topics

Using Ansible

In this guide, we have explained how to setup a cluster using Azure AMIs and configuring the instances using properties passed as user data. There are other ways to deploy a cluster, and one interesting alternative is to use Ansible. With Ansible, you can write a script that will start instances, deploy the latest server package and the necessary configuration files using SSH.

Using the Gurobi Router

A Remote Services Router may be used when you need to isolate better the cluster nodes in an Azure virtual network. Without a router, the clients need to have direct access to each node in the cluster and the node DNS name or IP must be accessible from the clients. Instead, a router provides a point of contact for all clients and will route the communication to the appropriate node in the cluster. A Remote Services Router acts as a reverse proxy. Behind a router, the cluster nodes can use private DNS names. To do so, set the configuration property CLOUD_HOSTNAME_MODE to private. The security inbound rules can also be restricted so that only the router can communicate with the nodes. The router will use HTTP as default but it can also use HTTPS so that the data can be encrypted from the clients to the router. The router can then route the traffic using HTTPS or HTTP depending on the configuration of the cluster. It is a common configuration to enable HTTPS only between the clients and the router while having the router and the nodes communicate over unencrypted HTTP in a protected network. Using this setup you only have to manage certificates on the router. Another alternative is to terminate TLS before the router, for example using an Azure Application Gateway. Please refer to the Remote Services Reference Manual for more details on the router configuration.