我需要一些帮助,这个问题已经过去了一周,无法弄清楚发生了什么。我无法从奴隶节点克隆一个git repo(Jenkins)。我添加了ssh密钥,主机和从属设备(我已经尝试生成一个密钥,每个虚拟主机和一个主机都有一个密钥)。
詹金斯:
似乎没有身份验证问题,因为我可以从控制台(包括奴隶和主机)手动克隆回购。我也可以用
连接ssh -T git@github.com
所以ssh键很好,但是当我构建时,它出现在控制台上:
在工作区C:\ Users \ IEUser \ Desktop \<中的IE10Win7上远程构建 文件夹>
首先清除工作区。
克隆远程Git存储库
克隆存储库git@github.com:<回购> git的
git init C:\ Users \ IEUser \ Desktop \<文件夹> #timetime = 10
错误:克隆远程回购'来源'
时出错错误:错误克隆远程回购'来源'
执行构建后任务...
有没有人有想法?希望有人能给我一个线索,谢谢!
答案 0 :(得分:20)
我通过设置从属节点工具路径,选择git并将其值设置为
来解决此问题C:\Program Files (x86)\Git\bin\git.exe
位置:配置节点 - 工具位置
答案 1 :(得分: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")
(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)
(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.
答案 2 :(得分:4)
在我的案例中,我找到了一个不错的解决方法。 git clone
命令始终继承其进程所有者,这可能会产生影响,即使Jenkins(SYSTEM)和cmd(USER)的两个所有者似乎在您的系统上拥有相同的权限。所有其他配置都相同(密钥,knownhosts,Git客户端版本)。
据我所见,从cmd调用git clone
将成功,因为它将远程调用为USER,而从Jenkins调用的git clone
可能会被拒绝,因为它将远程调用为SYSTEM。在服务中,您通常可以通过GUI启动Jenkins,您可以将服务配置为以其他用户身份运行(右键单击服务 - > gt;属性 - &gt;登录)。我不得不把它像USER @ DOMAIN一样,例如Jenkins@company.local左右。我不确定cmd参数的外观,但我希望有一个参数。
另外,我不太清楚这种解决方法最终会有什么不同,因为在我的Jenkins上,SYSTEM和USER被配置为在整个系统中具有相同的权限,它们当然都被识别为&# 34;詹金斯&#34;通过远程。不过,它对我有用。更深入的见解欢迎。
答案 3 :(得分:0)
我遇到了类似的问题,发现我需要为我的PATH环境变量添加git以用于基于Windows的从属。我认为@dhj建议2在这种情况下可能也会起作用。
上找到了此解决方法答案 4 :(得分:0)
就我而言,在我的构建机器的部分上更新了Git(通过Chocolatey,使用“git.install”软件包)从1.9.4升级到2.5.0后,我开始收到这个确切的错误。旧的1.9.4安装是32位软件包,但新的是64位软件包,因此默认安装位置从C:\ Program Files(x86)\ Git切换到C:\ Program Files \ Git。我在Jenkins主服务器上配置了64位路径(因为它有更新的Git版本),但是一些从服务器仍然安装了较旧的32位版本,因此从服务器试图使用不正确的路径。我可以覆盖单个从属的Git路径,但对我来说更简洁的解决方案就是将所有从属服务器升级到更新的64位版本。
答案 5 :(得分:0)
我尝试了上述大部分内容:
指定git位置。 设置服务用户。 以管理员身份运行。
没有一个有效。最终决定卸载git64并安装git32 ...将git路径更改为新位置(在x86 Program Files中)。一切顺利。
答案 6 :(得分:0)
我最近遇到了这个问题。
我们在PATH EV中有一些项目,我们在尝试将Winium和Selenium连接到Jenkins实例时添加了这些项目。
我们删除了这些项目,但詹金斯似乎仍然坚持这些价值观。经过一些故障排除:重启Jenkins;重启Jenkins服务器;在节点级别设置EV;等等,我们在Windows奴隶上重新启动了Jenkins JNLP服务。
他们过着幸福的生活。
答案 7 :(得分:0)
我也遇到了相同的错误,并通过在“ Manage Jenkins-> Global Tool Configuration”中添加git路径来解决。
在我的环境中,Windows Jenkins主服务器在ubuntu从计算机上运行作业,该主计算机使用默认的git('C:\ Program Files \ Git \ git.exe')路径,而从计算机已使用git('/ usr / bin / git')路径,因此,我将从属git路径配置为主配置'/ usr / bin / git',并开始为我工作