从jenkins groovy

时间:2019-07-04 10:26:03

标签: jenkins groovy

我正在尝试使用jenkins创建CI / CD管道,而我的环境开发/部署是Windows server 2016。 用Apache Groovy编写的管道脚本。哪个调用批处理文件用于部署代码,该批处理脚本正在执行2个任务。

  • 在另一台主机上部署代码(使用robocopy命令)
  • 启动w3svc服务(使用sc命令)。

在批处理文件中都提到了这两个命令,批处理文件是通过带有简单的'bat batchfilelocation /name.bat'的groovy脚本调用的。这是批处理脚本:

@echo [off]
net use "\\<servername>\<shareddirectory>" <password> /user:<domain\user> /persistent:no
robocopy "C:\jenkins\AngularPipeline\dist\<project>" \\$<Dir>eddistinationServer>\<shar /E /PURGE
sc \\$servername start w3svc
echo on
echo close batch script!

对于sc命令执行,它给出以下错误:

  

C:\ jenkins \ AngularPipeline> sc \开始w3svc [SC]   StartService:OpenService失败5:   访问被拒绝。

当我通过命令提示符(非管理员)直接调用该脚本时,该脚本运行良好。仅当此脚本在jenkins groovy下运行时,访问才被拒绝。

我检查了以下可能性:

  1. 源计算机和目标计算机上的WMI权限
  2. //确认已正确配置WinRM。 c:> Winrm quickconfig
  3. //确保远程服务器允许来自任何计算机的命令。 PS c:> Set-item wsman:localhost \ client \ trustedhosts -value *
  4. 重新启动Windows远程管理服务已在两台计算机上重新启动
  5. C:\ Windows \ system32> sc \ sdshow w3svc

D:(A ;; CCLCSWRPWPDTLOLORCRC ;;; SY)(A ;; CCDCLCSWRPWPDTLOCRSDRCWDWD ;;; BA)(A ;; CCLCSWLOCRRC ;;; IU)(A ;; CCLCSWLOCRRC ;;; SU)S:(AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWD ;;; WD)

请提出解决方法。

1 个答案:

答案 0 :(得分:0)

推荐方法:

如果您不在其他代理上运行此Jenkins作业,则可以重新配置Jenkins服务以使用本地管理员帐户。为此,请按照以下步骤操作

  1. 打开“开始”菜单
  2. 搜索“服务”
  3. 查找“詹金斯”服务
  4. 右键单击Jenkins服务
  5. 打开属性
  6. 点击“登录”标签
  7. 选择“此帐户”
  8. 浏览本地系统管理员帐户并选择它
  9. 添加密码并确认相同ID的密码
  10. 单击确定
  11. 重新启动/启动Jenkins服务

第二种方法:

  1. 在安装了Jenkins的服务器/工作站上创建bat文件
  2. 创建文件的快捷方式
  3. 右键单击快捷方式,然后转到“属性”
  4. 点击“比较”
  5. 选中“以管理员身份运行”旁边的复选框
  6. 点击“确定”,然后
  7. 单击立即应用,转到控制面板->系统和安全-> 操作中心->更改用户帐户控制设置
  8. 将级别设置为“从不通知”使用詹金斯(Jenkins)作业运行蝙蝠快捷方式

在这种情况下,作业将被标记为失败,但是脚本将被执行。