Multiple environments per machines, follow up


I’m reopening a discussion about that topic, because I’m (re)evaluating octopus for our deployments.

See my previous discussion here :

I’ve seen some interesting improvements :

I still have an orthogonal setup : x machines, hosting each y environment. What I want to avoid is the necessity to create x*y settings.
What bother me is that one machine is supposed to be used for only one environment : why not separate the machine concept from the environment ? Machine could be independant from any environment, then attached as hosting one (or multiple ones). I suppose it’s a low-level decision, so I understand it’s not feasible now.

By supposing this, if I have a variable which applies to each environment of one machine (for example a “ServerName” which contains only an internal displayname used for supervision , I have to duplicate it between each environment.

Moreover, the variables edition interface show machines grouped by environment, but only in the combobox. When listing settings, I only see the machine name. So I must include the environment name in the machine name to help me detecting if I’ve not missing an entry (I’m currently really creating x machines * y environments variables).

The gridview editing for variables you’ve shown in other discussions will certainly help. But if machines are still grouped by environment, I will have 15 lines per variable supposing I have 3 machines with 5 environments (it’s our current setup).

I’m not asking for a solution now, but I’m just highlighting a workflow I suppose a certain amount of other users have (by reading the topics in these forums).

Best regards,

Hi Thomas,

Thanks for the suggestion, I’ll do some thinking about it this weekend. Here’s a Trello item in case you wanted to add any other details:


Hi Thomas,

In considering this tonight, I’m thinking that the need you describe (to create a setting that applies to a set of machines that are actually the same machine) can be solved by this work item (which solves a bunch of other issues too):

Using the design linked above, you would tag a machine with a special tag - e.g., ‘my-special-server’. A variable can apply to an environment, or a tag, or both. So instead of X * Y variables, you could have X variables and Y variables.


Yes, it will work : For now I have one machine per environment. For all these “virtual machines” for each environment, I’ll create a real “physical” role which will depict the fact that it is only one single machine.

Then, I will apply variables per role/“physical machine” for everything related to physical structure (path for disk storage, name of db server instance to use, display name of physical server, etc.)

Thanks for this idea !