2015-11-02 100 views
0

我有一個jenkins盒子和一系列數百個虛擬機。我們有一個腳本,它使用psexec對每臺機器運行一組測試。Jenkins在psexec上工作失敗-d

爲了加快腳本的運行時間,我們一直在使用-d標誌,所以我們不能等待做每個命令,在開始我們的循環在下單前完成。我已經確認這些測試在手動運行時是功能正常的。

當我嘗試使用Jenkins來安排這項工作時,麻煩就開始了。我一直在構建失敗。有趣的是,當我調查虛擬機時,我發現一切都已正確執行。在工具周圍我刪除了-d標誌,瞧,構建開始傳遞。

不幸的是,這不是一個可擴展的項目,並已在這些順序運行withgout -d標誌是不可行的。

我需要知道,如果有一種方式來獲得詹金斯與PSEXEC -d工作。看起來好像構建失敗了,因爲我們沒有收到來自psexec的預期響應而進入下一步。有沒有辦法我可以僞造這個?

感謝,

+0

你需要在工作中運行多個psexec嗎?這聽起來像是一個矩陣工作的案例。 –

+0

是的,我不能發佈代碼,但是我們已經對vms列表進行了簡單循環,並且我們使用psexec對它們中的每一個進行了一些更改。矩陣工作對我來說是新的領域。 – Driver

+0

我會研究矩陣作業。我沒有時間在一分鐘後發佈完整的答案,但我可能在一兩個小時之內。但是,如果您使用軸上的機器(或機器名稱)設置單軸作業,那麼您應該能夠運行所有psexecs,每個作業一個,而Jenkins會失去跟蹤異步工作的風險。 –

回答

1

我已經得到了修復,L但我接受其他方法煤礦似乎不太理想。

由於詹金斯正在等待來自批處理腳本和PSEXEC -d及時的方式將不提供它的響​​應,我已經退出附加0〜批處理腳本結束。這給我們在每次執行時帶來積極的結果,並讓我執行我的任務。

不幸的是我擔心,它也將掩蓋會導致合法的失敗其他錯誤,所以我不得不將其分爲多個批次地隔離了這個掩蔽效應。

+0

不錯。我會在這方面聲稱道德上的勝利:)您可以在作業中顯示真實的退出代碼,然後手動檢查作業的控制檯輸出。但是,它幾乎肯定不會告訴你任何有用的信息,因爲在psexec返回之後直到(long!)纔會知道真正的結果。相反,你應該有一個驗證工作,不時檢查真實結果。像Nagios可能會有所幫助,甚至可以通過Ansible或PowerShell DSC獲得一些魔力。 –