Feature Request: Tools packages for Tentacles

I would like to be able to create one or more Octopus packages that contain tools needed on the tentacles to facilitate deployment.


I am deploying an executable that needs to be setup as a scheduled task. I use a set of PowerShell modules (in this case the PowerShell Pack on MSDN but it could be any arbitrary tool) to setup the task in the Windows task scheduler. Right now I have to copy those scripts out to each machine I will deploy on and setup a path or environment variable or perhaps an Octpus variable so that I can use those modules in my deployment script.

I could, obviously, include them in my deployment package but that doesn’t feel right since they a.) are not part of my app, and b.) are used by multiple packages in my deployment.

It would be great if I could define a set of packages that a given tentacle must have installed. These could be checked for updates during health checks and before each deployment.


Nice suggestion. You could actually set up a second “Infrastructure” project in Octopus right now, and put the scripts/files into NuGet packages. Octopus can then deploy this “Infrastructure” project to all machines. The package could even include a Deploy.ps1 that sets up the environment variables.

The only difference between this and your suggestion, I think, would be the ability to have your other projects “depend on” the infrastructure project being deployed. What do you think?


Yeah, I think that would work pretty well. The one other difference would be licensing. Since you need more than one project this would not be available in the Community Edition, however, that’s a business discussion not a feature discussion. :wink:

Muahahaha! You have discovered my master plot :slight_smile:

I suppose in the community edition, since you are only deploying one project by definition, you can still put the support scripts in a second NuGet package and have a single project like this:

Step 1: Install InfrastructureSupport package
Step 2: Install YourApp package

This way the package for YourApp isn’t polluted with the support scripts, and you can ensure they are always up to date.