Isso pode ser feito com RunDeck , usando um trabalho para cada etapa de host separada e um trabalho de nível mais alto para coordenar esses trabalhos. Embora o rundeck não tenha exatamente esse nível de coordenação dentro de um fluxo de trabalho, ele permite encadear vários Jobs para obter o mesmo efeito
Por exemplo:
-
Crie um Job para cada uma das ações "execute processX em hostY" (JobA-C). Esses trabalhos usariam o recurso Node Dispatch com o filtro correto para aplicar somente ao hostY.
-
crie um trabalho de nível superior com um fluxo de trabalho que use referências de trabalho para executar tarefas A-C em ordem e não usando o despacho de nós.
A execução do trabalho de nível superior percorre e executa os outros trabalhos em ordem, aguardando até que cada um termine antes de passar para o próximo passo.
Você poderia configurar o trabalho de nível superior para também "continuar": ou seja, mesmo se uma etapa falhar, continue a executar todas as etapas subsequentes.
Você também pode configurar suas tarefas de nível mais baixo para segmentar vários nós em paralelo, e a tarefa de nível superior ainda faria apenas uma etapa por vez.