Octopus Release not allowing deployment to Target

When attempting to deploy to my targeted test environment I am getting the following error:

You must have at least one enabled healthy machine in the environment before deployment can proceed

Although all targets are displaying healthy in my test environment.

Hi Aaron,

Thanks for reaching out!

There are a few reasons behind why this could be occurring, however I believe it’s most likely to do with the scope of the role used on the deployment targets.

Could you please confirm that the role used in your Project matches the role used on the Deployment Targets? I’ve shared some images below showing the role used for one of my deployment projects “webapp”.

The target role in my project:

Deployment Target which has that same role:

I’d be happy to take a further look into this if it’s is not the case. Also make sure to check out our Samples instance here, which I find to be a great reference for typical Octopus use cases!

Feel free to let me know if you have any questions!

Best Regards,

Thank you, I can confirm that my roles match my targets correctly. If there is a way that you could take a further look that would be great! Maybe I can create a temporary user for you to log in?

Hey Aaron,

Can you please DM me the URL of your instance as well as which space/project this is happening in?

Best,
Jeremy

Yes here is that information:

https://wltic.octopus.app/

Space: TMP Domestic

Project: TMP Code Release

Problem: We can deploy the process we have outlined to DEV but get a message about needing at leat one healthy target when attempting to deploy to Test.

Hey Aaron,

I took a look at your deployment process and I think I’ve found what’s causing this. I believe the way the roles are scoped currently likely needs to be reconfigured.

Are you able to consolidate these roles? (have removed unnecessary parts for privacy)
xAPPDEV
xAPPTST
to APP(or something similar)

xINTDEV
xINTTST
to INT(or something similar)

xWEBDEV
xWEBTST
to WEB (or something similar)

At the end you will have 6 targets, with 3 roles spread across them as well as appropriate environment scopes for the targets (leave the environments as they are).

At the end you should have something that looks like this:
Machine 1 Env - Dev + Role APP
Machine 2 Env - Test + Role APP
Machine 3 Env - Dev + Role INT
Machine 4 Env - Test + Role INT
Machine 5 Env - Dev + Role WEB
Machine 6 Env - Test + Role WEB

Then on your deployment process, remove both roles from each step and replace them with APP/INT/WEB depending on which role you want to target for each step. You will get the correct target for your deployment because each target will be scoped by the environment already, so there is no need to scope the roles by the environment as well.

Please let me know what you think, if you have any questions, and how it goes.

Best,
Jeremy

so remove the DEV TEST role naming conventions basically. I will try this, I wish there was a way to dry run test that we could conduct.

Hey Aaron,

You could potentially create a dummy project with run a script steps that emulate your current deployment process but instead just write-hosts machine names and other information to make sure your scoping is how you need it.

Please let me know how it goes.

Best,
Jeremy

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.