Installing Dependencies on Deploy

Is there a simple way to install dependencies that our packages need? I am thinking mainly about things like; SQL Server, RabbitMq, Redis.

I know there are custom scripts that we can write but some of our environments have no internet access so the installers would need to be shipped with the rest of the deployment. I guess we could create a package which contained the installer (not sure how to do this) but we would only want that to be shipped if this was the first time the environment was deployed to (no need to ship a 4GB SQL Server installer if SQL is already installed).

Is there a way to achieve this or is the first time install of the server out of scope of what octopus is trying to do?

Hi Nick,

Thanks for getting in touch! I believe you have mostly figured this out, and it is also how other customers do this task as well.
Packing the dependencies up and having a separate project is the way to go. Octopus itself will will know when a project and package have already been deployed and has the ability to skip both the package upload (if it is already there) and skip all the package step features if its been previously installed. It means running the projects on environments where it has already been installed won’t cause issues and you can move on to your other projects.

Packing the installers is as easy as zipping them as we support zip files. You can then run the installers using scripts available with the package steps.

Please let me know if you have any further questions or I can explain anything futher.

Thanks Vanessa,

This makes sense I didn’t realize that you could upload .zip files as teamcity had hosted a nuget feed for all our packages until now.

Hi Nick,

The internal Octopus repository is the only avenue that supports .zip files. However you can still package these into NuGet packages, either manually with NuGet Explorer or via octo.exe pack which you point at a directory and get a NuGet package as the result.

Here is the corresponding documentation:

Sorry for not being clear about that!