Ошибка клона Hudson + Git - PullRequest
       21

Ошибка клона Hudson + Git

4 голосов
/ 18 января 2011

Мы настроили Hudson с Git + OpenSSH на Windows Server 2003 Enterprise, и некоторое время он работал нормально.Затем, внезапно, он начал зависать во время клонирования на 12% всегда, мы подозревали, что файлы стали слишком большими(Он по-прежнему работает нормально на всех других машинах, в стандарте Windows Server 2003, Windows 7 Enterprise), только на этом одном сервере.

Итак, мы переключились на Putty вместо OpenSSH, и он работал с gitBash и gitExtensions, нопо-прежнему от Гудзона.Так как я прочитал, что есть некоторые опасения относительно правильной загрузки ключа ssh для plink, я установил для GIT_SSH сценарий, который будет загружать замазку с ключом, и он прекрасно работает из gitBASH, но все равно не работает с Hudson.

Вот вывод ошибки с использованием PUTTY:

    Started by user anonymous
Checkout:workspace / <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/> - hudson.remoting.LocalChannel@1c57a92
Using strategy: Default
Last Built Revision: Revision 2a56d9738e7c0af810e70e2e2051c41bd44f4252 (origin/master) Checkout:workspace / <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/> - hudson.remoting.LocalChannel@1c57a92
GitAPI created
Cloning the remote Git repository
Cloning repository origin
$ C:\bin\Git\bin\git clone -o origin git@GITSERVER:project.git <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/>
ERROR: Error cloning remote repo 'origin' : Could not clone git@GITSERVER:project.git
ERROR: Cause: Error performing C:\bin\Git\bin\git clone -o origin git@GITSERVER:project.git <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/>
Command returned status code 128: Cloning into <http://WINDOWS2003SERVER:8080/job/PROJECT/ws/...>
fatal: The remote end hung up unexpectedly

    Trying next repository
    ERROR: Could not clone repository
    FATAL: Could not clone
    hudson.plugins.git.GitException: Could not clone
     at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:809)
     at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:740)
     at hudson.FilePath.act(FilePath.java:756)
     at hudson.FilePath.act(FilePath.java:738)
     at hudson.plugins.git.GitSCM.checkout(GitSCM.java:740)
     at hudson.model.AbstractProject.checkout(AbstractProject.java:1171)
     at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:480)
     at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:412)
     at hudson.model.Run.run(Run.java:1362)
     at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
     at hudson.model.ResourceController.execute(ResourceController.java:88)
     at hudson.model.Executor.run(Executor.java:145)

Мы не строгие с нашим протоколом SSH, пока он работает, если кто-то может сказать мне, почему с openSSH он терпит неудачу, или почемуХадсон терпит неудачу с замазкой и любыми решениями, я был бы очень признателен !!

Ответы [ 4 ]

1 голос
/ 20 января 2011

Я никогда не мог понять, почему openSSH не работал, но я наконец все заработал с PuTTY.

Мое решение было следующим: Я создал пакетный файл с именем: myplink.bat, который будет выполнять замазку с закрытым ключом и не требовать запуска конкурса. Внутри этого файла было следующее:

@echo off
c:\pathto\plink.exe -i c:\pathto\id_rsa.pub

Открытие приглашения gitbash и изменение GIT_SSH на этот путь будет работать только для этого экземпляра, чтобы он был постоянно установлен для измененного gitbash. профиль c: \ pathto \ git \ etc \ и добавлен в конце:

export GIT_SSH=c:\pathto\myplink.bat

я тоже модифицировал c: \ pathto \ git \ cmd \ git.cmd и добавил:

@set GIT_SSH=c:\pathto\myplink.bat

Это исправленный git bash, но Хадсон все равно потерпит неудачу, и я верю, что среда Гудзона каким-то образом изменилась для git. Затем в Гудзоне я пошел управлять Гудзоном -> настроить параметры -> переменные среды Я удостоверился, что это было проверено, и добавил: имя: GIT_SSH значение: c: \ pathto \ myplink.bat

Я перезапустил службу Hudson, и она наконец заработала.

Обратите внимание, что если у вас есть пробелы на любом из ваших путей, это может привести к ошибкам, поэтому старайтесь, чтобы на ваших путях оставалось свободное место.

Надеюсь, это поможет другим, у кого проблемы с hudson + git + putty.

0 голосов
/ 19 октября 2011

У меня та же проблема при работе на сервере Linux (Ubuntu). Эта ссылка (http://adhockery.blogspot.com/2009/11/git-and-hudson.html) исправила мою проблему.

Ниже текст скопирован со ссылки.

Оказывается, Git нужно задать имя пользователя, а у пользователя hudson, создаваемого пакетом Debian при установке Hudson, его нет. Легко исправить, используя sudo nano / etc / passwd для добавления Hudson ,,, в запись пользователя hudson (если вы посмотрите на свою собственную запись, вы должны увидеть, куда она должна идти).

0 голосов
/ 28 мая 2011

Вы должны проверить следующее:

  1. Вы используете ssh-ключи пользователя, который запускал демон hudson.Например, если user = hudson, то вы должны войти в систему как hudson и сгенерировать ssh-ключи
  2. Вы загрузили свой открытый ключ на свой сервер (github ,assembla) из правильного файла .ssh / id_rsa.pub, т.е. длятот же пользователь, который запускал демон hudson
  3. Вы добавили отпечаток RSA вашего сервера в файл .ssh / known_hosts
0 голосов
/ 20 января 2011

У вас нет открытого ключа на вашем git-сервере. Делайте это с сервера hudson, когда вы вошли как 'git'.

ssh -v gitserver

Изучите результаты. Вам НЕ следует запрашивать пароль.

Если у вас возникли другие проблемы, у вас не настроены ssh-ключи.

надеюсь, это поможет

...