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
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.
- Absolute minimum to make it run: 512MB RAM, 1GHz CPU, 2GB free disk space.
- Recommended starting point for smaller deployments (less than 30 deployment targets for example): 2GB RAM, dual-core CPU, 10GB free disk space.
- Recommended starting point for larger deployments: 4GB RAM, dual-core, 20GB free disk space.
- Windows Server 2008 SP2+ with the correct version of .NET Framework installed.
- 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:
Once you have downloaded file, double click to open it. You would be presented with a screen like below:
Click next and you would be asked to accept license:
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:
Finally, you would be presented with 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.
Once installation is complete, you would be greeted with Octopus manager:
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:
Next, you’ll be asked where do you want to store octopus server configuration:
We’ll leave this at default and click next. Next we need to provide service account which will be used to run the server:
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:
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:
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.
Next, it will ask whether its okay to proceed. Thoroughly check all configuration you have provided with and then click Install:
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:
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):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|Import-DscResource -Module OctopusDSC|
|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"|
|# Execute the configuration above to create a mof file|
|# Run the configuration|
|Start-DscConfiguration -Path ".\SampleConfig" -Verbose -wait|
|# Test the configuration ran successfully|
In series of upcoming blog posts, we’ll learn how to configure application environments and deployment pipelines in Octopus.