There is a point to this story, but it has temporarily escaped my mind...
Contact Me MyFaceBook MyLinkedIn MyGitHub MyTwitter

Install Octopus Tentacle on Windows Deployment Targets

Each node that will be a deployment target needs to have a tentacle agent installed.

  1. First, Install .Net 4.5 framework.
  2. Install tentacle MSI from http://octopus.com/downloads/
  3. The Tentacle Setup Wizard should launch after the setup is complete.
  4. For “Storage”, Accept the defaults, then click “Next”.
  5. Choose “Listening Tentacle”, and then click “Next”.
  6. Accept the default Listen port and add the server thumbprint from the server (Configuration –> Certificates) page.
  7. Click Next, then click “Install”
  8. When the setup wizard completes, Click Add deployment target back in the server UI for the the appropriate environment.
    • Click “Listening Tentacle” for Target Type.
    • Type the hostname of the deployment target.
    • Click Discover
    • On Settings, Give the deployment target a meaningful name such as web01 or app01 as appropiate for the role.
    • For Roles, type the appropiate role for the target. Examples are: web, app, api, db, and service
  9. Repeat for remaining deployment targets.

I typically use this script to install the Tentacles:

$DeployDirectory = "D:\"
$Thumbprint = Read-Key "Enter Octopus Server Thumbprint"
###########################################################################
# Install Octopus Tentacle
$url = "https://octopus.com/downloads/latest/OctopusTentacle64"
$downloadPath = "$env:TEMP\octopus\"
 
if (Test-Path $downloadPath) {
    Remove-Item -Path $downloadPath -Recurse -Force
}
 
New-Item -Type Directory -Path $downloadPath | Out-Null
 
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
(New-Object System.Net.WebClient).DownloadFile($url, "$downloadPath\Octopus.Tentacle.msi")
 
& "$downloadPath\Octopus.Tentacle.msi" /passive
 
while ((Get-Process | where { $_.ProcessName -eq 'msiexec' } | Measure-Object).Count -ne 1) {
    Start-Sleep -Seconds 1
}
 
Write-Output "Octopus Tentacle Installed."
 
###########################################################################
# Configure Octopus Tentacle
 
Push-Location "C:\Program Files\Octopus Deploy\Tentacle"
 
& .\Tentacle.exe create-instance --instance "Tentacle" --config "C:\Octopus\Tentacle.config"
& .\Tentacle.exe new-certificate --instance "Tentacle" --if-blank
& .\Tentacle.exe configure --instance "Tentacle" --reset-trust
& .\Tentacle.exe configure --instance "Tentacle" --home "C:\Octopus" `
    --app "$DeployDirectory " --port "10933" --noListen "False"
& .\Tentacle.exe configure --instance "Tentacle" --trust $Thumbprint
 
netsh.exe advfirewall firewall add rule "name=Octopus Deploy Tentacle" `
    dir=in action=allow protocol=TCP localport=10933
 
& .\Tentacle.exe service --instance "Tentacle" --install --start
 
Pop-Location
 
Write-Output "Octopus Tentacle Configured. You will need to Add this server to Octopus:"
$fqdn = (Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
Write-Output "   * $fqdn"
Copyright © 2022 by Julian Easterling. SOME RIGHTS RESERVED.
Privacy Policy              Terms of Use             


Creative Commons License
Except where otherwise noted, content on this site is
licensed under a Creative Common Attribution-Share Alike 4.0 International License.


All of the opinions expressed on this website are those of Julian Easterling and
do not represent the views of any of my current and previous clients or employers in any way.

If you notice an error on the site or content that has not been properly attributed, bring
it to my attention using the contact page and I will endeavor to fix it as soon as I can.

I accept no responsibility or liability for any damages incurred by following any of
my advice or by using any of the information on my site or of those sites that I link to.