如何使Hudson写入远程磁盘?

我有一个问题写入使用Hudson的远程磁盘。 当我手动写入,它的工作。

两台电脑暗示:一台是Windows XP,另一台是Mac mini服务器。 需要远程访问的磁盘位于Mac上。 我成功了以下几点:

  • 在Mac上创build一个用户
  • 给它读取/写入访问要安装在WinXP框上的文件夹
  • 使用上面创build的用户的凭据将文件系统安装在WinXP计算机上
  • 创build几个目录,远程移动文件等(从WinXP电脑)

但是,当哈德森运行我编写的脚本编写的东西在挂载文件夹,它失败,说

BUILD FAILED C:\path\to\build.xml:62: Directory Z:\mac\path creation was not successful for an unknown reason 

我可以从同一台计算机(远程)创buildZ:\ MAC \path,它工作得很好。 实际上,该目录已经存在,但是我希望它能够在删除的情况下尝试创build它。 我在本地磁盘上做同样的事情,从不抱怨(目录是否存在)。

相应的Ant指令将会是

 <mkdir dir="Z:/mac/path/"/> 

我会怀疑某种types的许可问题。 不太确定。 在计算机上安装磁盘的用户不是SYSTEM …而Hudson是由“他”运行的。 WinXP计算机上的用户名与用于安装远程文件系统(NTFS)的Mac用户无关。

我能做些什么? 它很好地安装为Z :. 我可以浏览和编辑它没有问题。 这条线仍然不能在哈德逊计算(虽然它通过C :)。 我不认为有可能使用SYSTEM装载它…请帮助!

我刚刚解决了类似的问题,所以希望这个解决scheme适合你…但已经9个月,所以也许会帮助下一个人。 基本的问题是,如果Tomcat作为一个服务运行,你的脚本将以SYSTEM的身份执行。

  • 我的软件build立在我的电脑上,而不是哈德森
  • 如何获取SYSTEM用户的命令提示符

打开一个cmd提示符作为SYSTEM进行testing(从现在开始设置时间到一分钟)

 at 12:34 /interactive "cmd.exe" 

考试…

 C:\.jenkins\jobs\test\workspace>dir \\remotemachine\folder Access is denied. 

通过将驱动映射为具有足够权限的用户来解决(在这种情况下,写访问)

 NET USE z: \\remotemachine\folder password /USER:username\domain 

WinXP计算机上的用户名与用于安装远程文件系统(NTFS)的Mac用户无关。

尝试在两个系统上使用相同的用户名/密码创build一个帐户,然后使用Hudson过程(或者如果以这种方式安装了Hudson过程),则以该用户身份运行。

另一种方法是使用KCD提到的'NET USE'命令,但是/ USER参数选项是域\用户名而不是用户名\域。

我在我的环境中使用NET USE命令映射然后在NAS上写远程驱动器,所以绝对可以这样做。