从jenkins远程运行服务器机器上的“vmrun命令”

时间:2014-06-26 21:12:17

标签: windows ssh jenkins remote-access vmrun

我在Windows Server 2008 R2上运行的服务器计算机上安装了Windows 7_x64虚拟机。我想从jenkins运行这个VM(CI工具执行批处理文件,在同一台服务器上运行)。 我正在使用vmrun实用程序来执行此操作。 我跑的时候

vmrun -T ws -gu *** -gp *** start "vmx file path.vmx"

这在服务器命令提示符(本地)上执行正常。但是当我试图从任何一台客户端机器(通过访问jenkins网站)中获得同样的优势时,我得到了

Error: There was an error in communication

经过一些故障排除后,我可以说vmrun命令在远程唤起时没有响应。但它让我很困惑,因为我有jenkins运行这些命令安装在同一台服务器上。我只是从瘦客户端运行工作。这有什么不同?

有人可以帮我解决这个问题吗? 谢谢!

供参考:

*服务器计算机(主机):Windows Server 2008 R2

*虚拟机(来宾):Windows 7 x64

* Jenkins:安装在同一台服务器(主机)上

*客户端:远程Windows机器,从浏览器访问jenkins实例并触发作业

*问题/错误:vmrun命令不执行。

1 个答案:

答案 0 :(得分:1)

Jenkins不会在“client”上执行任何操作(即使用浏览器访问Jenkins实例的计算机)。 Jenkins只会在Master(你称之为“服务器机器”)或Slave节点上执行任何操作。

现在,从本地命令提示符(在服务器上)和通过Jenkins运行命令之间可能存在一些差异。主要区别在于Jenkins在单独的会话下运行,通常在单独的用户下运行,可能具有不同的权限,但这取决于您如何安装和配置Jenkins会话。

要确定是否存在任何环境变量差异,请在本地命令提示符下键入set,然后在构建步骤中仅使用set执行Jenkins。比较两者。除Jenkins特定变量外,其他一切都应该相同。

此外,验证您的Jenkins用户(运行该服务的用户)是否有权执行您正在执行的操作。