如何在Jenkins作业执行中包含域用户

问题描述 投票:1回答:1

我正在自动化构建过程。该过程需要将应用程序部署到服务器,部署后必须执行一些脚本以共享和提供服务器的权限。当我通过powershell通过域用户登录时脚本运行。我正在使用Jenkins进行CI / CD过程。我想包含我的域凭据以在服务器上运行脚本。我也使用了活动目录插件,可以使用我的域凭据登录,但仍然无法与服务器建立远程连接。

我的剧本是

Enter-PSSession -ComputerName ATKT-WS-20
Invoke-Expression -Command .\FolderSharingScript.ps1 

Enter-PSSession:连接到远程服务器ATKT-WS-20失败,并显示以下错误消息:WinRM无法处理请求。使用Kerberos身份验证时出现以下错误,错误代码为0x8009030e:指定的登录会话不存在。它可能已经被终止了。 可能的原因是: - 指定的用户名或密码无效。 -Kerberos在没有指定身份验证方法和用户名时使用。 -Kerberos接受域用户名,但不接受本地用户名。 - 远程计算机名称和端口的服务主体名称(SPN)不存在。 - 客户端和远程计算机位于不同的域中,两个域之间没有信任。检查上述问题后,请尝试以下操作: - 检查事件查看器以查找与身份验证相关的事件。 - 更改身份验证方法;将目标计算机添加到WinRM TrustedHosts配置设置或使用HTTPS传输。请注意,TrustedHosts列表中的计算机可能未经过身份验证

我还在trustedhosts中添加了机器名称。如何在Jenkins作业中包含域凭据?

windows powershell jenkins dns continuous-deployment
1个回答
0
投票

解决方案结果是根本不使用PowerShell的远程处理,而是依赖于Jenkins内置的远程处理:

  • 将作为Jenkins代理的远程计算机连接到Jenkins服务器,将代理可执行文件作为所需的域用户运行。
  • 在Jenkins服务器上,使用标签表达式确保将作业配置为在远程计算机上运行。
  • 假设安装了PowerShell插件,您可以按原样将PowerShell代码发送到远程计算机 - 无需PowerShell会话,凭据,......
© www.soinside.com 2019 - 2024. All rights reserved.