Hi
I hae a playbook that runs a powershell script to configure an Octopus Deploy Tentacle.
If I run this powershell script on the server it works perfectly. If I run playbook with the powershell script it fails on the server.
What could possibly be causing this? Permissions? Timing out?
Playbook:
---
- name: Configure Octopus Deploy Tentecle
hosts: all
tasks:
- name: Configure Octopus Deploy Tentecle
script: files/octo_autoconfig.ps1
Powershell script:
& "C:\Program Files\Octopus Deploy\Tentacle\Tentacle.exe" create-instance --instance "Tentacle" --config "C:\Octopus\Tentacle.config" --console;
& "C:\Program Files\Octopus Deploy\Tentacle\Tentacle.exe" new-certificate --instance "Tentacle" --if-blank --console;
& "C:\Program Files\Octopus Deploy\Tentacle\Tentacle.exe" configure --instance "Tentacle" --reset-trust --console;
& "C:\Program Files\Octopus Deploy\Tentacle\Tentacle.exe" configure --instance "Tentacle" --home "C:\Octopus" --app "C:\Octopus\Applications" --port "10933" --noListen "False" --console;
& "C:\Program Files\Octopus Deploy\Tentacle\Tentacle.exe" configure --instance "Tentacle" --trust "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" --console;
& "C:\Program Files\Octopus Deploy\Tentacle\Tentacle.exe" service --instance "Tentacle" --install --start --console;
Error I get when I try open Octopus Tenticle after running the playbook to config Octopus:
System.NullReferenceException: Object reference not set to an instance of an object.
at Octopus.Tools.TentacleConfiguration.TentacleManager.TentacleManagerModel.Reload(ApplicationInstanceRecord applicationInstance) in y:\work\refs\heads\master\source\Octopus.Tools\TentacleConfiguration\TentacleManager\TentacleManagerModel.cs:line 131
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Note that if I run the Powershell script directly on the server it works perfectly and configures the tentacle. If I then remove the tentacle and then run the playbook it works. So its as if the tenticle needs to be configured first directly on the server before an Ansible playbook can work. Which kind of defeats the point.
Im thinking that Ansible is deleting the powershell script from the temp directly it saves it to before the script is finishing running? Is that possible?
Is there a way of telling Ansible to wait until everything is completed in the script before it moves on or removes the temp file?
Any help would be appreciated.
Cheers
Mark