Programa para gerenciar o fluxo de trabalho do processo entre máquinas?

4

Eu tenho um script Perl interno que precisa muito de refatoração. No interesse de não reinventar a roda, eu estou olhando para ver se existe um equivalente de código aberto a ela, e estou tendo problemas para encontrar uma.

O script é executado como um daemon em todos os hosts e permite que eu faça coisas como:

  1. Execute o ProcessA no Host1.
  2. No Host2, assim que o ProcessA for concluído com êxito no Host1, execute o ProcessB.
  3. No Host1, assim que o ProcessB for concluído com êxito no Host2, execute o ProcessC.

Não é ciência de foguetes por qualquer meio, mas parece que não consigo encontrar nada que replique essa funcionalidade. O RunDeck chega perto, mas não vejo onde isso possa gerenciar fluxos de trabalho de processo em hosts diferentes .

Alguém aqui tem alguma coisa que eu deva investigar?

    
por Justin Ellison 30.08.2011 / 19:01

2 respostas

1

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:

  1. 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.

  2. 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.

    
por 30.08.2011 / 22:03
1
O

Skybot Scheduler pode ser capaz de fazer o que quiser - não tem 100% de certeza de que ele pode lidar com os bits de dependência entre hosts, mas é bastante robusto e é a primeira coisa que vem à mente.

    
por 30.08.2011 / 19:16