Incomplete Uninstall

One acceptance criteria I’m working with is that Octopus Deploy can be safely uninstalled if it is found to cause issues.

I’ve installed: Octopus.Tentacle.2.5.9.554-x64.msi

Then uninstalled via control panel which appears to have worked, but:

  • C:\Octopus still exists (may be on purpose, no big deal)
  • Service OctopusDeploy Tentacle stopped but still there
  • HKEY_LOCAL_MACHINE\SOFTWARE\Octopus\Tentacle\Tentacle still there

No deal breakers since I can manually remove all these, but worth mentioning.

To remove the items:

sc.exe delete "OctopusDeploy Tentacle"
rm HKLM:\SOFTWARE\Octopus -Force -Recurse
rm C:\Octopus -Force -Recurse

Hi Peter,

Thanks for getting in touch! This is one of those “it’s by design” responses.
We allow people to uninstall Tentacle and Octopus without any chance of removing their data or files.
Even things like the service could have been setup with specific users, so we just stop the service.
So all of the entries you have found we leave on purpose. For your scenario manually or scripting to remove them post uninstall will be required.

Thanks!
Vanessa

Uninstalling the tentacle from the MSI still leaves the service listed in the services control panel and leaves the service registry entries in tact, which is a pretty bad issue when trying to determine if the service is actually installed. The tentacle service still appears in the control panel, but the files have been actually removed from the disk, which really can’t be by design. The uninstaller should at least clean these things up.

We’re having a very hard time with puppet scripts trying to ensure the tentacle is installed and running. At this point we have to check the filesystem for actual files.

It sure would be nice if you could fix some of these problems with the tentacle installer.

Hi Jake,

Leaving the registry entries and files on disc (c:\Octopus) is done on purpose.

May I ask why you would uninstall Tentacle on a machine to then reinstall it?

Vanessa

I don’t think there is a problem with leaving user data on the system so that another installation might pick up the existing configuration. However the uninstaller is deleting files without uninstalling the service itself. So after uninstalling the tentacle using the msi uninstaller, the “Octopus tentacle” service is still listed in the control panel’s services list. However, attempting to start that service causes an error. To resolve this, you must issue an “sc delete” to completely remove it.

We are using puppet to manage our systems. With puppet you do not simply tell it to install something, you write code to describe the desired state of the system. It will check that state every so often and if the state does not match, it will take steps to return the system to that desired state. That means we need a way for puppet to know whether or not the Octopus Tentacle service is installed and running properly. This could be done in many ways – my thought is the best way is to examine the list of currently installed and running windows services. But with the current Tentacle installer system this seems impossible.

We do not INTEND to uninstall and re-install the Tentacle, but in practice this ends up happening more often than we would like. Administrators and developers have done it for any number of reasons over the years. That’s one of the great benefits of puppet – it should automatically return the system to our desired configuration should something unintended happen. But with Octopus we are struggling to make this work.

The uninstaller should actually uninstall the windows service. Leaving user data on the system would be fine. Leaving a service in the control panel list when it is un-runnable cannot be a desired behavior.

Hi Jake,

So I have more information, not that it will help if assumptions are incorrect.

Our MSI on both install and uninstall manages the files needed for the service. That is all.
The Tentacle Manager, well, manages the services. If the service does not exist it creates it, but also if you delete an instance from the Tenacle Manager it removes both the service and the registry entries. The only thing left is the c:\Octopus\ folder which generally contains an installation which Tentacle has no part in managing.

It is a bit of a misconception that all MSIs manage an entire process like this, and in many common cases like MS products they do. It comes down to the complexity that we allow multiple instances and services of Tentacle to run at once, and we need to manage that outside of an MSI. The MSI is just for the Tentacle manager not the Tentacle service - maybe that is what you could look for OctopusDeploy vs OctopusDeploy Tentacle. It should be the case that only if the OctopusDeploy service is missing then the MSI would need to be re-run.

The concept of the Tentacle instance itself is much more complex, and if they have only run the MSI to delete the Tentacle, then that is the only effect needed to repair.

Does that help a bit? I am going to add a page to our doco explaining the whole process and giving steps for a proper, full Tentacle uninstall and what each bit does.

Vanessa