Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support child steps that run on roles/machines other than the rest of the rolling step #641

Closed
PaulStovell opened this issue Feb 12, 2014 · 12 comments
Assignees
Labels
kind/enhancement This issue represents an enhancement we are committed to adding to Octopus as some time
Milestone

Comments

@PaulStovell
Copy link
Member

Scenario: http://octopus-deploy.tenderapp.com/discussions/problems/15836-powershell-child-step-cannot-be-executed-on-octopus-server

Perhaps an alternative would be, when configuring a PowerShell step as a child action, you can choose whether it should be executed on the "current machine" in the rolling deployment, or a single machine in a specific role.

@PaulStovell PaulStovell added this to the 2.x Backlog milestone Feb 12, 2014
@PaulStovell
Copy link
Member Author

D'oh, referenced the wrong issue in my commit. This one is not fixed.

@PaulStovell PaulStovell reopened this Feb 12, 2014
@PaulStovell
Copy link
Member Author

Another vote for this via email. Scenario is: machines need to be removed from F5 load balancer, but the machines don't have access to the LB for security reasons.

@PaulStovell PaulStovell modified the milestones: 2.6, 2.5 Jun 11, 2014
@dave-sansum
Copy link

+1 This is a blocker for us now and none of the workaround soutions are really feasible.

@michael-huxtable
Copy link

Is this coming in 2.6? How can we access information about the machine that the child step is running on if we run a specific step on another machine?

Specifically when considering the load balancer scenario if a step runs on the deploy server rather than the child step machine we would need some child step context information such as the current IP / network information of the machine.

Otherwise when the step runs on the deploy machine we won't be know what server to remove from the load balancer 😄

@PaulStovell PaulStovell removed this from the 3.0-pre1 milestone Apr 1, 2015
@PaulStovell PaulStovell added this to the 3.1 milestone May 26, 2015
@PaulStovell PaulStovell modified the milestone: 3.1 Jul 22, 2015
@DamianMac
Copy link

Will add ability to run scripts from Octopus Server which will solve these scenarios

@DamianMac DamianMac removed the ready label Aug 26, 2015
@DamianMac DamianMac reopened this Aug 26, 2015
@repler
Copy link

repler commented Nov 24, 2015

Is there any update on this?

@PaulStovell
Copy link
Member Author

Here's what we will do:

  1. You can add PowerShell script steps that run on the Octopus server. If they are part of a rolling step, they still run on Octopus server but are passed variables related to the current machine in the rolling deployment.
  2. You can also add manual steps. These won't persist the deployment (it stays executing in memory, just in a wait loop).

Whoever picks this up, might be worth chatting to me first.

@robpearson
Copy link

Release Note: Email, Manual Steps and Azure Powershell steps can now be executed in a rolling step. Also added support to run a PowerShell Script on the Octopus Server.

@hansenfreddy
Copy link

When you say "Run on the Octopus server" - this means that we still e.g. can't execute powershell on a tentacle on the load balancer in a rolling deployment?

See: http://help.octopusdeploy.com/discussions/questions/6653-cannot-utilize-tentacle-on-load-balancer-need-to-remote-execute-powershell

So this means we still would have to talk to the load balancer remotely (remote execute powershell for example) from the Octopus server?

@PaulStovell
Copy link
Member Author

That's right - with this change, steps in the rolling deployment either run in the Tentacle in that rolling deployment (e.g., the web server), or now the Octopus server. They can't run on some other random Tentacle yet.

@cainux
Copy link

cainux commented Aug 1, 2017

I am currently in a scenario where I need this exact feature. We have a couple of load balancers (primary and backup) in front of our application and would like to be able to remove nodes from them both during a rolling deployment.

Our web servers and load balancers are connected to Octopus and have their own roles (web, loadbalancer).

The process looks like this:

  1. Determine deployment targets (web)
  2. Disable deployment targets on the load balancers
  3. Deploy package (web)
  4. Enable deployment target on the load balancers

Right now our workaround is to manually pick the deployment targets and run the deployment twice (we only have 2 web nodes right now).

Looking at the history of this though have people come up with a better way/workaround?

@lock
Copy link

lock bot commented Nov 24, 2018

This thread has been automatically locked since there has not been any recent activity after it was closed. If you think you've found a related issue, please contact our support team so we can triage your issue, and make sure it's handled appropriately.

@lock lock bot locked as resolved and limited conversation to collaborators Nov 24, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/enhancement This issue represents an enhancement we are committed to adding to Octopus as some time
Projects
None yet
Development

No branches or pull requests

9 participants