Applies to:
Step 1: Install Erlang and RabbitMQ
Back to
Server 10.6.1 installation
- Install Erlang and RabbitMQ
- Install Winshuttle Server Manager
- Run QueueDeployment Utility
- Modify the Web.Config file
- Install Server Worker
- (Optional): Configure Central for Autopost
Related topics
Prior to installing Winshuttle Server, you must install the version of Erlang OTP and RabbitMQ appropriate to your version of Winshuttle Server. Download links are provided below. Winshuttle Server uses RabbitMQ (an application messaging platform) as its queuing architecture, and RabbitMQ is built upon the Erlang programming language.
On this page
- Erlang/RabbitMQ download links
- Verifying Erlang cookie integrity
- Installing RabbitMQ for high-availability configurations
Erlang/RabbitMQ Download Links (for Server 10.6.1 and later)
Note: Erlang and RabbitMQ must be installed on the same machine and the same drive. In addition, if you are re-installing RabbitMQ and Erlang, make sure you completely uninstall them prior to re-installation. See Uninstalling RabbitMQ and Erlang OTP.
Important Notes:
- Winshuttle Server components (i.e. Worker and Manager) can be installed on the same machine or separate machines.
- For the best performance, install RabbitMQ on a separate machine from Winshuttle Server.
- For Winshuttle Server requirements, Erlang should be installed with the default settings.
- After installing Erlang OTP, you need to install RabbitMQ. RabbitMQ can also be installed with the default settings.
Verifying Erlang cookie integrity
Back to topAfter installing Erlang OTP and RabbitMQ, you need to verify the integrity of the Erlang OTP cookie.
Erlang nodes use a cookie to determine whether or not they are allowed to communicate with each other. For two nodes to communicate, they must have the same cookie.
The cookie is just a randomly generated string of alphanumeric characters. Erlang automatically creates this cookie when the RabbitMQ server starts.
During installation of RabbitMQ, two cookie files are created. The default locations for these files are:
- %SystemRoot%\.erlang.cookie (for example: C:\Windows\.erlang.cookie)
- %HOMEDRIVE%%HOMEPATH%\.erlang.cookie (for example: C:\Users\[username]\.erlang.cookie)
Note: The %homedrive%%homepath%\ needs to be the one for the system account that is using the Winshuttle Worker service.
Sometimes (due to permissions or other reasons) these files are not the same.
If they are different, then you need to Copy the file .erlang.cookie manually from %SystemRoot% to %HOMEDRIVE%%HOMEPATH%.
Installing RabbitMQ for High Availability configurations
Back to topInstalling RabbitMQ on 1 machine is sufficient for Winshuttle Server to work. But if you want to install RabbitMQ for a high-availability (HA) configuration, you can create a cluster of more than 1 RabbitMQ nodes so that if one fails, another keeps working.
RabbitMQ HA combines clustering and mirroring to create a RabbitMQ HA environment. Clustering consists of multiple RabbitMQ nodes. One node is designated as the "master" node while others are "slave" nodes. Data in the master node queue is mirrored to all slave nodes.
If a slave node fails, the master node continues serving its queue. If the master node fails, a slave node is automatically promoted to the master role.
In order to create a RabbitMQ HA environment: There are two conditions required to create a RabbitMQ HA:
- All nodes in the cluster must have the same version of Erlang and RabbitMQ, i.e. for Winshuttle server 10.6.1. you need to install Erlang OTP R16B03 and RabbitMQ 3.2.2 on all machines that are part of the cluster. If any machine has an older version of Erlang or RabbitMQ, you must uninstall them completely and install the new versions.
- All the nodes where RabbitMQ is installed must have the same cookie file, so you will need to copy the cookie file from the %SystemRoot% folder of first node (i.e. Master node) to the %SystemRoot% folder and the %HOMEDRIVE%%HOMEPATH% folder of all the machines.
Because you will be making changes in the %SystemRoot% directory, you will need to restart those server machines for changes to take effect.