用于管理跨机器工作流程的程序?

用于管理跨机器工作流程的程序?

我有一个内部 Perl 脚本,急需重构。为了避免重复造轮子,我正在寻找是否存在与之相当的开源版本,但一直找不到。

该脚本在所有主机上作为守护进程运行,并允许我执行如下操作:

  1. 在 Host1 上运行 ProcessA。
  2. 在 Host2 上,一旦 ProcessA 在 Host1 上成功完成,就运行 ProcessB。
  3. 在 Host1 上,一旦 ProcessB 在 Host2 上成功完成,就运行 ProcessC。

无论如何,这不是什么火箭科学,但我似乎找不到任何可以复制该功能的东西。 RunDeck很接近了,但我不明白它如何管理流程工作流跨不同主机

这里有人有我应该调查的事情吗?

答案1

这可以通过RunDeck,为每个单独的主机步骤使用一个作业,并使用更高级别的作业来协调这些作业。尽管 rundeck 没有完全达到这一级别的协调之内工作流,它确实允许你将多个作业链接在一起以获得相同的效果

例如:

  1. 为每个操作“在 hostY 上运行 processX”(JobA-C)创建一个作业。这些作业将使用节点调度功能和正确的过滤器仅应用于 hostY。

  2. 创建一个顶级作业,其工作流使用作业引用按顺序执行作业 AC,而不是使用节点调度。

运行顶层作业将逐步按顺序运行其他作业,等待每个作业完成后再进入下一步。

您可以将顶级作业配置为“keepgoing”:也就是说,即使一个步骤失败,也继续执行所有后续步骤。

您还可以将低级作业配置为并行针对多个节点,而顶级作业仍然一次只执行一步。

答案2

Skybot 调度器也许能够做你想做的事 - 不是 100%确定它可以处理跨主机依赖位,但它非常强大,而且它是首先想到的东西。

相关内容