我在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命令不执行。
答案 0 :(得分:1)
Jenkins不会在“client”上执行任何操作(即使用浏览器访问Jenkins实例的计算机)。 Jenkins只会在Master(你称之为“服务器机器”)或Slave节点上执行任何操作。
现在,从本地命令提示符(在服务器上)和通过Jenkins运行命令之间可能存在一些差异。主要区别在于Jenkins在单独的会话下运行,通常在单独的用户下运行,可能具有不同的权限,但这取决于您如何安装和配置Jenkins会话。
要确定是否存在任何环境变量差异,请在本地命令提示符下键入set
,然后在构建步骤中仅使用set
执行Jenkins。比较两者。除Jenkins特定变量外,其他一切都应该相同。
此外,验证您的Jenkins用户(运行该服务的用户)是否有权执行您正在执行的操作。