Jenkins在psexec上工作失败-d

问题描述:

我有一个jenkins盒子和一系列数百个虚拟机。我们有一个脚本,它使用psexec对每台机器运行一组测试。Jenkins在psexec上工作失败-d

为了加快脚本的运行时间,我们一直在使用-d标志,所以我们不能等待做每个命令,在开始我们的循环在下单前完成。我已经确认这些测试在手动运行时是功能正常的。

当我尝试使用Jenkins来安排这项工作时,麻烦就开始了。我一直在构建失败。有趣的是,当我调查虚拟机时,我发现一切都已正确执行。在工具周围我删除了-d标志,瞧,构建开始传递。

不幸的是,这不是一个可扩展的项目,并已在这些顺序运行withgout -d标志是不可行的。

我需要知道,如果有一种方式来获得詹金斯与PSEXEC -d工作。看起来好像构建失败了,因为我们没有收到来自psexec的预期响应而进入下一步。有没有办法我可以伪造这个?

感谢,

+0

你需要在工作中运行多个psexec吗?这听起来像是一个矩阵工作的案例。 –

+0

是的,我不能发布代码,但是我们已经对vms列表进行了简单循环,并且我们使用psexec对它们中的每一个进行了一些更改。矩阵工作对我来说是新的领域。 – Driver

+0

我会研究矩阵作业。我没有时间在一分钟后发布完整的答案,但我可能在一两个小时之内。但是,如果您使用轴上的机器(或机器名称)设置单轴作业,那么您应该能够运行所有psexecs,每个作业一个,而Jenkins会失去跟踪异步工作的风险。 –

我已经得到了修复,L但我接受其他方法煤矿似乎不太理想。

由于詹金斯正在等待来自批处理脚本和PSEXEC -d及时的方式将不提供它的响​​应,我已经退出附加0〜批处理脚本结束。这给我们在每次执行时带来积极的结果,并让我执行我的任务。

不幸的是我担心,它也将掩盖会导致合法的失败其他错误,所以我不得不将其分为多个批次地隔离了这个掩蔽效应。

+0

不错。我会在这方面声称道德上的胜利:)您可以在作业中显示真实的退出代码,然后手动检查作业的控制台输出。但是,它几乎肯定不会告诉你任何有用的信息,因为在psexec返回之后直到(long!)才会知道真正的结果。相反,你应该有一个验证工作,不时检查真实结果。像Nagios可能会有所帮助,甚至可以通过Ansible或PowerShell DSC获得一些魔力。 –