Nic*_*ile 24 windows github slave jenkins
我需要一些帮助,这是一个星期我遇到这个问题,无法弄清楚发生了什么.我无法从奴隶节点(Jenkins)克隆git repo.我添加了ssh密钥,主机和从机(我已经尝试生成一个密钥,每个虚拟主机和一个密钥)).
在詹金斯:
似乎没有身份验证问题,因为我可以从控制台(slave,slave和host)手动克隆repo.我也可以联系
ssh -T git@github.com
所以ssh键很好,但是当我构建时,它出现在控制台上:
在工作区C:\ Users\IEUser\Desktop\<folder>中远程构建IE10Win7
首先擦除工作区.
克隆远程Git存储库
克隆存储库git@github.com:< repo> .git
git init C:\ Users\IEUser\Desktop\<folder> #timetime = 10
错误:克隆远程repo'origin'时出错
错误:克隆远程repo'origin'时出错
执行Post构建任务......
有没有人有想法?希望有人能给我一个线索,谢谢!
小智 21
我通过设置从节点工具路径,选择git并将其值设置为来解决此问题
C:\Program Files (x86)\Git\bin\git.exe
Run Code Online (Sandbox Code Playgroud)
位置:配置节点 - 工具位置
dhj*_*dhj 11
我最近更新了几个jenkins插件,并在更新后出现此问题.回滚git插件没有帮助,但我还做了一些其他事情来让它工作.我在这里列出了所有这三个,但很可能(2)解决了这个问题.显然git可执行文件已重置为默认值.因此,在特定项目中配置git可执行文件可能就是所需要的.然而,其他项目也可能派上用场.
(1)jenkins linux install上的默认git通常指向/ usr/lib ...你需要指定一个指向windows版本的单独的GitForWindows:
Manage Jenkins
Configure System
Under Git - Git Installations
Add Git -> Git
Give it a name to be referenced in projects
(mine is WindowsGit)
Set Path to Git Executable
(mine is "C:\Program Files (x86)\Git\bin\git.exe")
(for recent git the path is "C:\Program Files\Git\bin\git.exe")
Run Code Online (Sandbox Code Playgroud)
(2)在特定项目上配置git:
Select the project
Select Configure
Under Source Code Management - Git
Select Git Executable as configured in 1)
Set credentials or add new (ssh keys, etc)
Run Code Online (Sandbox Code Playgroud)
(3)更新jenkins slave服务以作为特定用户运行:
Go to Windows Services on the slave -- StartMenu, type "services"
Select the Jenkins Slave service in the list on the right
Right-click and select "Properties" of the Jenkins Slave service
Select the "Log On" tab
Update the username and password used in manual tests
Domain login can be specificied with <DOMAIN>\<USERNAME>
Local logins just use <USERNAME>
OK to save and exit
Right-click again and select "Restart" to make the changes active.
Run Code Online (Sandbox Code Playgroud)
我在我的案例中找到了一个不错的解决方法。该git clone
命令始终继承其进程所有者,这可能会产生影响,即使 Jenkins (SYSTEM) 和 cmd (USER) 的两个所有者似乎在您的系统上具有相同的权限。所有其他配置都是相同的(密钥、已知主机、Git 客户端版本)。
据我所知,git clone
从 cmd 调用将会成功,因为它将远程作为 USER 调用,而git clone
从 Jenkins 调用可能会被拒绝,因为它将远程作为 SYSTEM 调用。在服务中,您通常通过 GUI 启动 Jenkins,您可以将服务配置为以不同用户身份运行(右键单击服务 --> 属性 --> 登录)。我必须将其设置为 USER@DOMAIN,例如 Jenkins@company.local 等。我不确定 cmd 参数会是什么样子,但我希望会有一个。
另外,我不太知道这种解决方法最终会产生什么区别,因为在我的 Jenkins 上,SYSTEM 和 USER 配置为在整个系统中具有相同的权限,并且它们当然都被远程识别为“Jenkins”。尽管如此,它对我还是有用的。欢迎更深入的见解。