Jenkins无法访问已安装的驱动程序

时间:2012-04-24 10:03:30

标签: windows jenkins nfs

我的Jenkins服务器在Windows 2008服务器上的Tomcat中运行。 我在CentOS上设置了NFS服务器,Win2008服务器可以通过mount命令访问NFS共享文件夹。我在Windows上以管理员用户身份运行时测试了它。我在Windows 2008服务器上将该文件夹挂载为Z驱动程序。 但我在詹金斯的工作说它找不到Z驱动程序,我猜Jenkins的网络应用程序可能没有足够的权限来访问Z驱动程序。请参阅Jenkins的错误消息

控制台输出:

Started by user anonymous
Building in workspace C:\.jenkins\workspace\upland-install
[upland-install] $ cmd /c call "C:\Program Files\Apache Software Foundation\Tomcat    6.0\temp\hudson4487584210513580576.bat"

C:\.jenkins\workspace\upland-install>rd d:\tmp\upland_dist /s /q 

C:\.jenkins\workspace\upland-install>xcopy Z:\upland_release\364 d:\tmp /S

 **Invalid drive specification**
 0 File(s) copied

如何解决这个问题?将Jenkins安装为Windows服务?

5 个答案:

答案 0 :(得分:3)

一对解决方案:

  1. 您需要在安装驱动器的同一用户环境中运行Jenkins进程。这样做有效,但并不总是理想的解决方案。
  2. 在使用已安装驱动器的用户上下文中启动的Jenkins从站上运行作业。如果奴隶机器不可用,并不总是可行。
  3. 使用Publish Over CIFS plugin

答案 1 :(得分:0)

我不能[但]评论,否则我会告诉Anders Lindahl提出他的建议答案。我遇到了这个问题,并且建议将共享驱动器安装为构建步骤,这样我就可以使用ArtifactDeployer插件成功复制到网络驱动器。

我插入了“执行批处理命令”的构建步骤并输入:

net use J: \\example.com\path\to\share

注意,我的设置是Jenkins作为本地系统帐户运行。并且使用具有安装网络驱动器权限的域帐户将jnlp slave节点安装为Windows服务。

答案 2 :(得分:0)

去找工作 - >打开执行窗口cammand脚本并编写

取代X:\ folder \ folder2

之后运行你的任务。以上将映射您的驱动器

答案 3 :(得分:0)

直接从Jenkins访问远程共享上的文件可能很棘手,因为它可能会返回拒绝访问权限。要解决此问题,请将Jenkins服务配置为以用户身份运行。

在我的情况下,我希望从Jenkins从属设备上的UI测试输出(type "\\slave1\log\ui.log")日志文件到Jenkins master,以将其保留在构建日志中。如果没有这个,如果测试失败,并且另一个构建覆盖了faillog,则无法确定根本原因。通过将日志输出复制到Jenkins,可以在以后每次都重现构建失败。

要切换Jenkins服务的用户,请打开mmc,添加“服务”管理单元,找到Jenkins服务,双击它并在身份验证选项卡上设置用户和密码。

HTH

答案 4 :(得分:0)

与Windows Server 2008 R2相同的问题。

对我们来说,诀窍是通过从属计算机上的Java Web Start启动代理,但不将其安装为Windows服务。尽管此技巧不会在计算机重启后自动恢复连接。

奇怪的是,即使在重新启动服务并成功重新连接之后,将代理安装为Windows服务并使用正确的用户凭据对其进行配置对我们也不起作用。