Chain Deployments

This topic has been covered several times but no definitive answer has ever been given. Nothing I try is working. In another post, Kenneth suggests using the ‘Deploy a Release’ Step template. I can’t find this one. Does it still exist?

We are using the chain deployment tool to create a Server Provisioning script. I want this script to set up a whole server and deploy everything to that server in one big script. I’ve been playing with it for a while now.

I managed to get it to deploy to a single node but I had to use this setting.

Now I need to deploy to an environment that has multiple nodes this setting does not work because both nodes are trying to create a new release. The first on succeeds but the second one fails because it is trying to use the same Release Version number. OK. I get that. Another post said that it was better to use the ‘Run on the Octopus Server’ setting anyway. And this is where the issue is.

So it looks like I need Chain Deployments to work with this setting.


However, every time I get this error.

== Failed: Step 10: Deploy Applications www188 ==

17:12:52   Fatal    |     The step failed: This task has been canceled.

17:12:52   Info     |     The operation was canceled.


                    |     Failed: na-tst-OCT-UGRD

17:12:52   Fatal    |       The action Chain Deployment - Enrolment and Planning on na-tst-OCT-UGRD failed


                    |       Failed: Chain Deployment - Enrolment and Planning (on the Octopus Server)

17:12:29   Verbose  |         Octopus Server version: 2019.6.5+Branch.tags-2019.6.5.Sha.e406f9b14c6fb8a4c379b8b7c2db952d29a7a21a

17:12:29   Verbose  |         Environment Information:

                    |         OperatingSystem: Microsoft Windows 10.0.14393

                    |         OsBitVersion: x64

                    |         Is64BitProcess: True

                    |         CurrentUser: STAFF\scv-octopus

                    |         MachineName: NA-TST-OCTOPUS

                    |         ProcessorCount: 1

                    |         CurrentDirectory: C:\WINDOWS\system32

                    |         TempDirectory: C:\Users\scv-octopus\AppData\Local\Temp\

                    |         HostProcessName: Octopus.Server

                    |         PID: 6556

17:12:29   Verbose  |         Executing Chain Deployment - Enrolment and Planning (type Run a Script) on Octopus Server

17:12:29   Verbose  |         Using Calamari 4.21.2

17:12:29   Verbose  |         Running this script in the Octopus Server security context (STAFF\scv-octopus)

17:12:29   Verbose  |         Starting C:\WINDOWS\system32\WindowsPowershell\v1.0\PowerShell.exe in working directory 'E:\Octopus\Work\20190828071229-21931-8' using 'OEM United States' encoding running as 'STAFF\scv-octopus' with the same environment variables as the launching process

17:12:30   Verbose  |         Octopus Deploy: Calamari version 4.21.2

17:12:30   Verbose  |         Environment Information:

17:12:30   Verbose  |         OperatingSystem: Microsoft Windows NT 10.0.14393.0

17:12:30   Verbose  |         OsBitVersion: x64

17:12:30   Verbose  |         Is64BitProcess: True

17:12:30   Verbose  |         CurrentUser: STAFF\scv-octopus

17:12:30   Verbose  |         MachineName: NA-TST-OCTOPUS

17:12:30   Verbose  |         ProcessorCount: 1

17:12:30   Verbose  |         CurrentDirectory: E:\Octopus\Work\20190828071229-21931-8

17:12:30   Verbose  |         TempDirectory: C:\Users\scv-octopus\AppData\Local\Temp\

17:12:30   Verbose  |         HostProcessName: Calamari

17:12:30   Verbose  |         Performing variable substitution on 'E:\Octopus\Work\20190828071229-21931-8\Script.ps1'

17:12:30   Verbose  |         Parsing file 'E:\Octopus\Work\20190828071229-21931-8\Script.ps1' with Octostache returned the following error: `The following tokens were unable to be evaluated: '#{GuidedFailureActionIndex}', '#{GuidedFailureAction}'`

17:12:31   Verbose  |         Executing 'E:\Octopus\Work\20190828071229-21931-8\Script.ps1'

17:12:31   Verbose  |         Name                           Value

17:12:31   Verbose  |         ----                           -----

17:12:31   Verbose  |         PSVersion                      5.1.14393.3053

17:12:31   Verbose  |         PSEdition                      Desktop

17:12:31   Verbose  |         PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}

17:12:31   Verbose  |         BuildVersion                   10.0.14393.3053

17:12:31   Verbose  |         CLRVersion                     4.0.30319.42000

17:12:31   Verbose  |         WSManStackVersion              3.0

17:12:31   Verbose  |         PSRemotingProtocolVersion      2.3

17:12:31   Verbose  |         SerializationVersion 

17:12:32   Info     |         Setting Proxy Environment Variables

17:12:32   Verbose  |         PowerShell Environment Information:

17:12:32   Verbose  |         OperatingSystem: Microsoft Windows NT 10.0.14393.0

17:12:32   Verbose  |         OsBitVersion: x64

17:12:32   Verbose  |         Is64BitProcess: True

17:12:32   Verbose  |         CurrentUser: STAFF\scv-octopus

17:12:32   Verbose  |         MachineName: NA-TST-OCTOPUS

17:12:32   Verbose  |         ProcessorCount: 1

17:12:32   Verbose  |         CurrentDirectory: E:\Octopus\Work\20190828071229-21931-8

17:12:32   Verbose  |         CurrentLocation: E:\Octopus\Work\20190828071229-21931-8

17:12:32   Verbose  |         TempDirectory: C:\Users\scv-octopus\AppData\Local\Temp\

17:12:32   Verbose  |         HostProcessName: powershell

17:12:33   Verbose  |         TotalPhysicalMemory: 8388016 KB

17:12:33   Verbose  |         AvailablePhysicalMemory: 5837868 KB

17:12:33   Verbose  |         Checking API compatibility

17:12:33   Warning  |         Octopus web request (GET: failed & will be retried in 30 seconds:

17:12:33   Warning  |         The underlying connection was closed: An unexpected error occurred on a receive.

17:12:52   Verbose  |         Process C:\WINDOWS\system32\WindowsPowershell\v1.0\PowerShell.exe in E:\Octopus\Work\20190828071229-21931-8 exited with code -1

17:12:52   Verbose  |         Updating manifest with output variables

17:12:52   Verbose  |         Updating manifest with action evaluated variables

17:12:52   Fatal    |         The remote script failed with exit code -1

So out of that the lines I’m interested in is:

Octopus web request (GET: failed & will be retried in 30 seconds:

17:12:33   Warning  |         The underlying connection was closed: An unexpected error occurred on a receive.

Of course, it tries again for a few time… but who has time for that?

In the comments to the step template it says:

Available Settings:
- DebugLogging - set to ‘True’ or ‘False’ to log all GET web requests
- GuidedFailureMessage - will change the note used when submitting guided failure actions, the following variables will be replaced in the text:
#{GuidedFailureActionIndex} - The current count of interrupts for that step e.g. 1
#{GuidedFailureAction} - The action being submitted by the step e.g. Retry
- DeploymentRetryCount - will override the number of times a deployment will be retried when unsuccessful and enable retrying when the failure option is set for a different option, default is 1
- StepRetryCount - will override the number of times a deployment step will be retried before before submitting Ignore or Abort, default is 1
- RetryWaitPeriod - an additional delay in seconds wait before retrying a failed step/deployment, default is 0
- QueueTimeout - when scheduling a deployment for later a timeout must be provided, this allows a custom value, default is 30:00, format is hh:mm
- OctopusServerUrl - will override the base URL used for all web requests, making it possible to chain deployments on a different Octopus instance/server, or as a workaround for misconfigured node settings

I have been using an environment variable

but it is the last part of this statement that interests me. “a workaround for misconfigured node settings”. What misconfiguration is this talking about?

In another post, I saw a suggestion to check that the tentacle servers could access the Octopus Server API. I have done this and there is no problem. I can query the API from the swaggerui page on the Tentacle servers. The same is true on the server itself. I can query the Octopus API from the swaggerui page from the Octopus server.

I have tried using https://localhost/ for the environment variable. Same error.

I have look at the firewall settings and nothing is being blocked on either side.

I’m really not sure where to goto from here. Does anyone have any ideas?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Hi @j_steensma,

Thanks for getting in touch here. I’m very sorry for this long delay in responding to you. If you still need help here I would me more than happy to do so.

You mention not being able to find the Deploy a Release step. This step was introduced in Octopus version 2018.2.1. We have a documentation page which has information on how you can configure this step in your deployment.

The step should be built into Octopus and not one downloaded as a Community Template. If you are still having trouble here, please let me know and I would be happy to help.

I apologise again for the long delay in responding to you here.

Best regards,