Automating Octopus installation

Octopus comes in a MSI that can be deployed via group policy or other means.

Downloads

You can use the permanent link below to download the Octopus Server.

Download the Octopus Server

The latest version of the Octopus Deploy Server can be downloaded from the downloads page.

We recommend using the latest version of the Octopus Deploy Server. If you need an older version of the Octopus Deploy Server, visit the previous downloads page to locate the specific version you need.

Automating the installation of Octopus Server is a three step process.

1. Install the MSI on a temporary machine interactively

In this step we install the MSI on a machine interactively so that we can complete the wizard to add a new instance.

Follow all the steps in the installation process, but in the final step copy the generated script into a new file. Do not click Install.

Save the script into a new file.

Here is an example of what the script might look like:

"[INSTALLLOCATION]\Octopus.Server.exe" create-instance --instance "<instance name>" --config "<new instance config path>" --serverNodeName "<machine name>"
"[INSTALLLOCATION]\Octopus.Server.exe" database --instance "<instance name>" --connectionString "<database connection string>" --create
"[INSTALLLOCATION]\Octopus.Server.exe" configure --instance "<instance name>" --upgradeCheck "True" --upgradeCheckWithStatistics "True" --usernamePasswordIsEnabled "True" --webForceSSL "False" --webListenPrefixes "<url to expose>" --commsListenPort "10943"
"[INSTALLLOCATION]\Octopus.Server.exe" service --instance "<instance name>" --stop
"[INSTALLLOCATION]\Octopus.Server.exe" admin --instance "<instance name>" --username "<admin username>" --email "<admin email>" --password "<admin password>"
"[INSTALLLOCATION]\Octopus.Server.exe" license --instance "<instance name>" --licenseBase64 "<a very long license string>"
"[INSTALLLOCATION]\Octopus.Server.exe" service --instance "<instance name>" --install --reconfigure --start --dependOn "MSSQLSERVER"

2. Install MSI silently

To install the MSI silently:

msiexec /i Octopus.<version>.msi /quiet RUNMANAGERONEXIT=no

By default, the Octopus files are installed under %programfiles%. To change the installation directory, you can specify:

msiexec /i Octopus.<version>.msi /quiet RUNMANAGERONEXIT=no INSTALLLOCATION="<install path>"

3. Configuration

The MSI installer simply extracts files and adds some shortcuts and event log sources. The actual configuration of Octopus Server is done later, via the script you saved above.

To run the script start an admin shell prompt and execute the script, this should apply all the settings to the new instance.

Desired State Configuration

Octopus can also be installed via Desired State Configuration (DSC). Using the module from the OctopusDSC GitHub repository.

The following PowerShell script will install an Octopus Server listening on port 80. Make sure the OctopusDSC module is on your $env:PSModulePath:

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"
        }
    }
}

# 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

Settings and properties

To review the latest available settings and properties, refer to the OctopusDSC Server readme.md in the GitHub repository.

Taking DSC further

DSC can be applied in various ways, such as Group Policy, a DSC Pull Server, Azure Automation, or even via configuration management tools such as Chef or Puppet. Learn more about Desired State Configuration at Windows PowerShell Desired State Configuration .

Help us continuously improve

Please let us know if you have any feedback about this page.

Send feedback

Page updated on Sunday, January 1, 2023