Hudson/Jenkins 很诡异的 jenkins 访问远程共享目录问题

ibanzou · 发布于 2015年1月21日 · 435 次阅读
96

[i=s] 本帖最后由 ibanzou 于 2015-1-21 18:16 编辑

现在有个jenkins job实现从jenkins server触发登录远程windows服务器server_staging.com的共享目录,以保存从私服下载下来的war包,然后deploy到这个远程服务器上。 这个是job设置里的batch脚本,getArtifact步骤通过了,就不贴log了,D:\new_horizons\tools\是jenkins server的目录。

set path=%path%;D:\new_horizons\tools\apache-maven-3.0.3\bin powershell.exe Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force powershell.exe -File getArtifact.ps1 ./manifest.CSV

net use %Server%\Deployment_Staging /DELETE @echo off net use %Server%\Deployment_Staging %GlobalPassword% /USER:%GlobalUserName% @echo on rd /s /q "%Server%\Deployment_Staging\Deploy" mkdir %Server%\Deployment_Staging\Deploy xcopy .\Deploy %Server%\Deployment_Staging\Deploy /e /i /h net use %Server%\Deployment_Staging /DELETE exit 0

LOG如下 D:\new_horizons\tools\jenkins\jobs\AutoDeployment-ST0-TestAccount\workspace>rd /s /q "\server_staging.com\Deployment_Staging\Deploy"
Access is denied. D:\new_horizons\tools\jenkins\jobs\AutoDeployment-ST0-TestAccount\workspace>mkdir \server_staging.com\Deployment_Staging\Deploy Access is denied. D:\new_horizons\tools\jenkins\jobs\AutoDeployment-ST0-TestAccount\workspace>xcopy .\Deploy \server_staging.com\Deployment_Staging\Deploy /e /i /h Access denied Unable to create directory - \server_staging.com\Deployment_Staging\Deploy 0 File(s) copied

诡异的是,我做过如下尝试,都没问题。

  1. 从本地机器,远程登录到server_staging的远程桌面,账号没问题。
  2. 从本地机器,登录server_staging的共享目录,账号能写,也没问题。 就是从jenkins的脚本去登陆就报没有访问权限,谁知道这个问题怎么解决?谢谢。
共收到 9 条回复
96
TN801465 · #1 · 2015年1月22日

Hudson\Jenkins里面很多插件都或多或少的有一些些问题~~这个对一般人来说都很痛苦

96
ibanzou · #2 · 2015年1月22日

[i=s] 本帖最后由 ibanzou 于 2015-1-22 10:06 编辑

谢谢回复,不过更诡异的是另一个和我同样权限的账号却没有这个问题。 而且jenkins是通过AD group管理账号的,我又看不到我的账号被加到了哪个AD group里,直接把账号加到jenkins安全设置里也同样报错。

对了,出现这个问题之前,我的账号改过密码,也能用新密码登录Jenkins,难道jenkins记住了我原来的旧密码?难道要重启Jenkins server才能解决问题(客户才有权限)?

没辙了,不会真的是RPWT吧?

4
laofo · #3 · 2015年1月22日

把这些保存成一个 bat 文件,双击运行是成功的还是失败的?

96
ibanzou · #4 · 2015年1月22日

谢谢版主现身, 脚本应该是没有问题的,其他人的账号都没这个问题,你的建议是说在jenkins server上运行这个bat文件么? 目前只有客户才有权限登录jenkins server机器,唉。

4
laofo · #5 · 2015年1月22日

不试试无法排除问题。

另外就是可以映射到一个盘符,然后在进去执行这个命令,如下

net use H: %Server%\Deployment_Staging %GlobalPassword% /USER:%GlobalUserName% H: rd /s /q "%Server%\Deployment_Staging\Deploy"

53642
bernardlai · #6 · 2015年1月22日

看一下你启动jenkins服务的用户是那个,权限是啥样子的。

96
ibanzou · #7 · 2015年1月26日

试过了你推荐的方法,还是说没有权限。 由于公司的密码策略,我的新密码里有&符号,有没有可能是jenkins server不认密码里的特殊字符&?

4
laofo · #8 · 2015年1月27日

那你权限到底给了没有?

96
ibanzou · #9 · 2015年1月27日

肯定给了权限,我现在是Jenkins admin组里的,以前是好的,只是改了加&的密码就出现了这个问题。 实在不行就再重置密码吧,重置密码要等时机的,因为要同步很多系统,唉。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册