Process

跨機器管理流程工作流的程序?

  • August 18, 2013

我有一個非常需要重構的內部 Perl 腳本。為了不重新發明輪子,我正在尋找是否存在與之等效的開源,但我很難找到一個。

該腳本在所有主機上作為守護程序執行,並允許我執行以下操作:

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

無論如何,這不是火箭科學,但我似乎找不到任何可以複製該功能的東西。 RunDeck接近了,但我看不出它可以在哪裡管理跨不同主機的流程工作流。

這裡有人有什麼我應該調查的嗎?

這可以通過RunDeck來完成,對每個單獨的主機步驟使用 Job,並使用更高級別的 Job 來協調這些作業。儘管 rundeck在工作流中沒有完全那樣的協調水平,但它確實允許您將多個作業連結在一起以獲得相同的效果

例如:

  1. 為每個操作“在 hostY 上執行 processX”(JobA-C)創建一個作業。這些作業將使用具有正確過濾器的節點調度功能,僅適用於主機。
  2. 創建一個頂級作業,其工作流使用作業引用按順序執行作業 AC,而不是使用節點調度。

執行頂級作業將逐步執行並按順序執行其他作業,等到每個作業完成後再進行下一步。

您可以將頂級作業配置為也“繼續”:即,即使一個步驟失敗,繼續執行所有後續步驟。

您還可以將較低級別的作業配置為並行定位多個節點,而頂級作業仍然一次只執行一個步驟。

引用自:https://serverfault.com/questions/306504