How do we implement High Availability on an existing Octopus Deploy instance?

Our Octopus Deploy setup has reached a point where Octopus is business-critical and we want to move Octopus over to a Fault Tolerant configuration and we are looking at implementing High Availability but we’re not sure how to configure it, are you able to help?

Hi,

Octopus: High Availability (HA) enables you to run multiple Octopus Deploy Servers, distributing load and tasks between them. It’s a great option and I’d really encourage you to get it configured!

First, I would look at moving your task logs, packages and artifacts on to a network share so that all nodes have access to them and they will be separate should one of your Octopus Deploy servers go down. This is done on the command line:

Octopus.Server.exe path --artifacts \\Octoshared\OctopusData\Artifacts
Octopus.Server.exe path --taskLogs \\Octoshared\OctopusData\TaskLogs
Octopus.Server.exe path --nugetRepository \\Octoshared\OctopusData\Packages

Then I would put your server into Maintenance Mode and drain the nodes so that it doesn’t perform any deployments whilst you’re making changes to the configuration.

Once that is complete, open up the Octopus Manager on your current Octopus Deploy instance and copy the master key:

Now you can configure the second and any other additional nodes.

Install the Octopus Server MSI onto the new node but rather than selecting the “Getting Started” button use the link to “Add this instance to a High Availability cluster”.

Connect to the same shared SQL database as your first node:

On the Cluster details page, enter the master key from the original node:

Complete the setup wizard. You’ll now have a second node in the cluster!

The final step to configure is your load balancer, so that user traffic is directed between each of the Octopus Server nodes.

Here are some links to some useful resources: