We’re trying to automate our Tentacle install, and running into a problem. We use the silent install feature of the MSI to install Tentacle, this works as expected - Tentacle is installed in C:\Program Files\Octopus Deploy\Tentacle. As expected (I think), no service or the like is setup.
Directly after install, there is no Tentacle.config file in the Tentacle program files directory. Running Octopus Tentacle Manager and going through the steps to create a new instance then creates this file, and I can see it is populated with the certificate, etc. However, if I uninstall Tentacle, delete its Program Files directory, reinstall Tentacle, and then try and use “tentacle.exe create-instance --config C:\Program Files\Octopus Deploy\Tentacle\Tentacle.config” it errors out telling me that it can’t read a non-existent file, however, the docs online state the --config parameter should point to a file to create.
When running the manual setup through the Tentacle Manager application, I see a step in the output like follows: “Creating non-existent configuration file”, but this doesn’t seem to happen when automating through the CLI.
What’s the correct way to go about automating this initial step of creating a Tentacle instance? This is with Tentacle 3.14.159, and the clients are Windows 10.
The exact output from create-instance:
PS C:\Program Files\Octopus Deploy\Tentacle> .\Tentacle.exe create-instance --instance "Tentacle" -- config "C:\Program Files\Octopus Deploy\Tentacle\Tentacle.config" --console .\Tentacle.exe : =============================================================================== + CategoryInfo : NotSpecified: (===============...===============:String) , RemoteException + FullyQualifiedErrorId : NativeCommandError Configuration file C:\Program Files\Octopus Deploy\Tentacle\Tentacle.config could not be found. System.Exception at Octopus.Shared.Configuration.XmlFileKeyValueStore.LoadSettings(IDictionary`2 settingsToFill) at Octopus.Shared.Configuration.DictionaryKeyValueStore.Load() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at Octopus.Shared.Configuration.DictionaryKeyValueStore.Read(String key) at Octopus.Shared.Configuration.AbstractKeyValueStore.Get(String name, Nullable`1 protectionScope) at Octopus.Shared.Configuration.HomeConfiguration.get_HomeDirectory() at Octopus.Shared.Configuration.LoggingConfiguration.get_LogsDirectory() at Octopus.Shared.Configuration.LogInitializer.InitializeLogs() at Octopus.Shared.Configuration.ApplicationInstanceSelector.DoLoad() at Octopus.Shared.Configuration.ApplicationInstanceSelector.get_Current() at Octopus.Shared.Startup.OctopusProgram.TryLoadInstance() at Octopus.Shared.Startup.OctopusProgram.Run()
Thanks in advance!