Program to manage process workflow across machines?
Solution 1:
This can be done with RunDeck, using a Job for each separate host step, and a higher-level Job to coordinate those jobs. Although rundeck doesn't have exactly that level of coordination within a workflow, it does allow you to chain together multiple Jobs to get the same effect
E.g:
Create a Job for each the actions "run processX on hostY" (JobA-C). These jobs would use the Node Dispatch feature with the correct filter to apply to the hostY only.
create a top-level Job with a workflow that uses Job References to execute jobs A-C in order, and not using Node Dispatching.
Running the top-level job would step through and run the other jobs in order, waiting until each one finishes before going to the next step.
You could configure the top-level job to also "keepgoing": that is, even if one step fails, continue to execute all subsequent steps.
You could also configure your lower-level jobs to target multiple nodes in parallel, and the top-level job would still do only one step at a time.
Solution 2:
Skybot Scheduler may be able to do what you want - not 100% certain it can handle the cross-host dependency bits, but it's pretty robust and it's the first thing that jumps to mind.