How to customize/define a release's destination folder in a Tentacle?

I followed Octopus instructions and am able to manually release my test build to tentacle.

The problem is that the build was first released to default location (C:\Octopus\Application\MyAppName\1.0.0.1, I want it to be released to C:\Websites\TheWebName (note the name ‘TheWebName’ vs ‘MyAppName’, and no version subfolder).

Now I changed the Tentacle config file so it is releasing to C:\Websites\MyAppName\1.0.0.1, how can I make it to release to C:\Websites\TheWebName?

Hi Peter,

Thanks for getting in touch!
Under the package step you can select “Custom Installation Directory” from “Configure Features” and define a directory to install to.
It will overwrite the files and not create version folders.

Hope that helps!

Vanessa

Thanks Vanessa.

I did try that configuration, but I bet I didn’t use correctly. I also tried to find documentations on the item but no luck.

How can I use it (“Custom Installation Directory”) to make the deployment to c:\Websites\TheWebName on the tentacle machine? Please note that the tentacle config file already has the following line, can I create the custom installation directory based on it (such as $tentacle.deployment.applicationDirectory\TheWebName)?

<set key="Tentacle.Deployment.ApplicationDirectory">C:\Websites</set>

Never mind, I figured it out. Thanks!

Hi Peter,

I am glad you figured it out, I will assume you have figured out the value and power of variables.
You are not alone in these setup questions so I think I will write a guide on ‘how to variables when getting started with Octopus’

Cheers
Vanessa

Hi Vanessa,

I have another (dum :)) question.

Can I use Octopus to deploy different packages to different machines in the same environment? Say I have pkg1 and pkg2, I would like to create two projects to deploy them respectively to machine1 and machine2 in Stg environment.

But currently Octopus default to deploy a package to all machines in parallel, which is not what I want/need.

Regards,
Peter

Hi Peter,

Not dum at all :slight_smile:

This is where machine roles come into play. You can define roles for machines, and then only run specific steps for those roles.
And I am either having one of those days, or I can’t seem to find a specific documentation page about roles.

Okay so let me give a brief run down in here: For each machine you can define a role, such as ‘database-server’ ‘appserver’ ‘thefastone’ really anything that relates to that machine (that might one day be used for multiple machines across any environments). You can then assign WHICH role a package or step is for. So in a complex deployment if you have a database package and only want that going to ‘database-server’ machines, that will be the case, and then your second app package can then again be installed only to ‘appserver’ machines. For even some cases you could deploy both packages to ‘thefastone’ because its beefy and has an app server and database server all installed, while also going to the other machine roles.

Does that make sense in this situation or am I really having one of those days?
Vanessa

Hi Vanessa,

Thank you very much for the detailed explanation and intuitive instructions. I found out last night that I could make different roles (that’s why I said ‘dum’ :-)), before that I thought I only can use one role ‘Tentacle’ :-((

Anyways, I am now trying to add different roles/machines to the environment!

Thanks again,
Peter