首页 文章

Jenkins错误克隆远程repo 'origin',从节点

提问于
浏览
23

我需要一些帮助,这是一个星期我遇到这个问题,无法弄清楚发生了什么 . 我无法从奴隶节点(Jenkins)克隆git repo . 我添加了ssh密钥,主机和从机(我已经尝试生成一个密钥,每个虚拟主机和一个密钥)) .

在詹金斯:

  • url:git@github.com:<repo>

  • 凭据:这里我尝试使用用户名/密码,使用ssh文件的用户名,直接使用ssh密钥的用户名和-none- .

似乎没有身份验证问题,因为我可以从控制台(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 \ <文件夹> #timeout = 10错误:克隆远程repo'origin'时出错ERROR:克隆远程错误repo'origin'执行Post构建任务......

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

7 回答

  • 0

    我通过设置从节点工具路径,选择git并将其值设置为来解决此问题

    C:\Program Files (x86)\Git\bin\git.exe
    

    位置:配置节点 - 工具位置

  • 0

    我最近更新了几个jenkins插件,并在更新后出现此问题 . 回滚git插件没有帮助,但我还做了一些其他事情来让它工作 . 我在这里列出了所有三个,但是 it was probably (2) that fixed the problem. Apparently the git executable was reset to default. So, configuring the git executable within the specific project was probably all that was needed . 然而,其他项目也可能派上用场 .

    (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.
    
  • 10

    在我的案例中,我找到了一个不错的解决方法 git clone 命令始终继承其进程所有者,这可能会产生影响,即使Jenkins(SYSTEM)和cmd(USER)的两个所有者似乎在您的系统上拥有相同的权限 . 所有其他配置都相同(密钥,knownhosts,Git客户端版本) .

    因此,据我所知,从cmd调用 git clone 将成功,因为它将远程调用为USER,而从Jenkins调用的 git clone 可能会被拒绝,因为它将远程调用为SYSTEM . 在服务中,您通常可以通过GUI启动Jenkins,您可以将服务配置为以其他用户身份运行(右键单击服务 - >属性 - >登录) . 我不得不把它像USER @ DOMAIN一样,例如Jenkins@company.local左右 . 我希望有一个 .

    另外,我不太清楚这种解决方法最终会有什么不同,因为在我的Jenkins上,SYSTEM和USER被配置为在整个系统中具有相同的权限,当然它们都被远程识别为“Jenkins” . 不过,它对我有用 . 更深入的见解欢迎 .

  • 4

    我遇到了类似的问题,发现我需要为我的PATH环境变量添加git以用于基于Windows的从属 . 我认为@dhj建议2在这种情况下可能也会起作用 .

    我在Jenkins Jira.找到了这个解决方法

  • 20

    在我的情况下,在我的一些构建机器(通过Chocolatey,使用"git.install"软件包)从1.9.4到2.5.0更新Git之后,我开始收到这个确切的错误 . 旧的1.9.4安装是32位软件包,但新的是64位软件包,因此默认安装位置从C:\ Program Files(x86)\ Git切换到C:\ Program Files \ Git . 我在Jenkins主服务器上配置了64位路径(因为它有更新的Git版本),但是一些从服务器仍然安装了较旧的32位版本,因此从服务器试图使用不正确的路径 . 我可以覆盖单个从属的Git路径,但对我来说更简洁的解决方案就是将所有从属服务器升级到更新的64位版本 .

  • 0

    我试过上面的大部分内容:

    指定git位置 . 设置服务用户 . 以管理员身份运行 .

    它都没有奏效 . 最终决定卸载git64并安装git32 ...将git路径更改为新位置(在x86 Program Files中) . 一切顺利 .

  • 0

    我最近遇到了这个问题 .

    我们在PATH EV中有一些项目,我们在尝试将Winium和Selenium连接到Jenkins实例时添加了这些项目 .

    我们删除了这些物品,但詹金斯似乎仍然坚持着值 . 经过一些故障排除:重启Jenkins;重启Jenkins服务器;在节点级别设置EV;等, we restarted the Jenkins JNLP service on the Windows slave .

    从此他们过着幸福的生活 .

相关问题