Install and Configure Octopus Server for Continuous deployments

Octopus server has become wildly popular these days for continuous deployments because of its features, extensibility and integration with continuous integration tools like Jenkins or Bamboo. It can be used to deploy applications and perform complex steps to servers located either in cloud or on-premise. It also supports latest inclusion of latest DevOps technology like containers.

In this blog post we’ll learn how to setup a Octopus server on a clean windows server machine. It supports all windows server versions starting from Windows Server 2008 SP2. For our demo, we’ll use Windows Server 2016 machine.

Pre-Requisites for installing Octopus

Hardware

There is no “one size fits all” approach for Octopus Server. The best approach is to start with a working Octopus Server, start deploying your applications while monitoring your server statistics, and scale from there.

  1. Absolute minimum to make it run: 512MB RAM, 1GHz CPU, 2GB free disk space.
  2. Recommended starting point for smaller deployments (less than 30 deployment targets for example): 2GB RAM, dual-core CPU, 10GB free disk space.
  3. Recommended starting point for larger deployments: 4GB RAM, dual-core, 20GB free disk space.

Software

  1. Windows Server 2008 SP2+ with the correct version of .NET Framework installed.
  2. Microsoft SQL database instance which can be accessed by Octopus Server. It can be located either on local SQL server, remote SQL server, or in cloud as well.

Do note that Octopus 3.0.0 – 3.3.27 requires .NET Framework 4.5 or newer whereas Octopus 3.4 onward requires .NET Framework 4.5.1 or newer.

Install Octopus Server

First we need to download appropriate version of Octopus server from octopus site. Octopus comes in a MSI that can be deployed via group policy or other means like manually, scripts, DSC or other ways.

Permanent links to always get the latest MSIs are:

32-bit: https://octopus.com/downloads/latest/WindowsX86/OctopusServer
64-bit: https://octopus.com/downloads/latest/WindowsX64/OctopusServer

Once you have downloaded file, double click to open it. You would be presented with a screen like below:

Octopus installation - welcome screen
Octopus installation – welcome screen

Click next and you would be asked to accept license:

Octopus installation - license installation screen

Accept license and click next. It will ask for which location you want to install files. We would be leaving that default and click next:

Octopus installation - file location screen
Octopus installation – file location screen

Finally, you would be presented with ready to install screen:

Octopus installation - ready to install screen

Click Install. It will start installing files and binaries. Once done, click finish.

Install SQL Server and Configure Database

We’ll also need to install SQL server and configure a SQL database or we can choose either a remote hosted or cloud hosted instance as well. We’ll skip detailing this step as this is not main focus of this post. However, you need to do it for your environment.

Configuring Octopus

Once installation is complete, you would be greeted with Octopus manager:

Octopus manager - welcome screen

Click on get started to launch octopus setup wizard. Next you’ll be presented with license key screen. If you already have a license key, you need to put it in there or select start a free trial and click next:

octopus set up - license key screen

Next, you’ll be asked where do you want to store octopus server configuration:

octopus setup - server instance screen

We’ll leave this at default and click next. Next we need to provide service account which will be used to run the server:

octopus setup - service account screen

Submit relevant details and then click next. Now, we’ll be asked for database details. Provide details relevant to your database instance and then click next:

octopus setup - submit database details

Now it will ask on which port, it should create a web portal. This portal will be used for further configuration of Octopus like setting up infrastructure, deoployment environments, etc. We’ll leave default option at port 80:

octopus setup - configure web instance
octopus setup – configure web instance

Next we need to configure an administrative user for logging into above web portal. Here you can select different authentication methods. You can choose to store username/passwords in Octopus database or use Active Directory as well.

octopus setup - configure admin user

Next, it will ask whether its okay to proceed. Thoroughly check all configuration you have provided with and then click Install:

octopus setup - proceed with configuration
octopus setup – proceed with configuration

Once configuration is complete, click finish. Octopus Manager will now present you with current server status. Here you can see whether server is running or stopped, directories used to store configuration, etc. You can also manage your server settings from here:

octopus manager - server status screen
octopus manager – server status screen

We’ll now click open in browser button so that we can launch web portal and start with environment configuration.

Automating Installation using PowerShell DSC

If you don’t like manual installations, you can also choose to use PowerShell DSC to automate the installation and configuration process. The following PowerShell DSC script can be used for same (You need to modify this as per your environment):


Configuration SampleConfig
{
Import-DscResource -Module OctopusDSC
Node "localhost"
{
cOctopusServer OctopusServer
{
Ensure = "Present"
State = "Started"
# Server instance name. Leave it as 'OctopusServer' unless you have more than one instance
Name = "OctopusServer"
# The url that Octopus will listen on
WebListenPrefix = "http://localhost:80"
SqlDbConnectionString = "Server=(local)\SQLEXPRESS;Database=Octopus;Trusted_Connection=True;"
# The admin user to create
OctopusAdminUsername = "admin"
OctopusAdminPassword = "<my secret password>"
# optional parameters
AllowUpgradeCheck = $true
AllowCollectionOfAnonymousUsageStatistics = $true
ForceSSL = $false
ListenPort = 10943
DownloadUrl = "https://octopus.com/downloads/latest/WindowsX64/OctopusServer&quot;
}
}
}
# Execute the configuration above to create a mof file
SampleConfig
# Run the configuration
Start-DscConfiguration -Path ".\SampleConfig" -Verbose -wait
# Test the configuration ran successfully
Test-DscConfiguration

In series of upcoming blog posts, we’ll learn how to configure application environments and deployment pipelines in Octopus.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s