Jenkins错误克隆远程repo&origin;',slave节点

时间:2015-03-27 13:22:34

标签: windows github jenkins slave

我需要一些帮助,这个问题已经过去了一周,无法弄清楚发生了什么。我无法从奴隶节点克隆一个git repo(Jenkins)。我添加了ssh密钥,主机和从属设备(我已经尝试生成一个密钥,每个虚拟主机和一个主机都有一个密钥)。

詹金斯:

  • url:git@github.com:<回购>
  • 凭据:我尝试使用用户名/密码,使用ssh文件的用户名,使用ssh密钥的用户名,以及-none - 。

似乎没有身份验证问题,因为我可以从控制台(包括奴隶和主机)手动克隆回购。我也可以用

连接
  

ssh -T git@github.com

所以ssh键很好,但是当我构建时,它出现在控制台上:

  

在工作区C:\ Users \ IEUser \ Desktop \<中的IE10Win7上远程构建   文件夹>

     

首先清除工作区。

     

克隆远程Git存储库

     

克隆存储库git@github.com:<回购> git的

     

git init C:\ Users \ IEUser \ Desktop \<文件夹> #timetime = 10

     

错误:克隆远程回购'来源'

时出错      

错误:错误克隆远程回购'来源'

     

执行构建后任务...

有没有人有想法?希望有人能给我一个线索,谢谢!

8 个答案:

答案 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在这种情况下可能也会起作用。

我在Jenkins Jira.

上找到了此解决方法

答案 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',并开始为我工作