2013-06-19 2 views
1

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

Cloning repository origin 
$ git clone -o origin [email protected]:xyzw/myproject.git /var/lib/hudson/jobs/myjob/workspace 
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:xyzw/myproject.git 
ERROR: Cause: Error performing git clone -o origin [email protected]:xyzw/myproject.git /var/lib/hudson/jobs/myjob/workspace 
Command returned status code 128: Cloning into /var/lib/hudson/jobs/myjob/workspace... 
ERROR: Repository not found. 
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:763) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:702) 
    at hudson.FilePath.act(FilePath.java:756) 
    at hudson.FilePath.act(FilePath.java:738) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:702) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1181) 
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:536) 
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424) 
    at hudson.model.Run.run(Run.java:1374) 
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:467) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:145) 

в других потоках, некоторые люди рекомендовали создать другую пару ключей частной общественности на входе в системе как пользователь Дженкинс, но я даже не знаю, как сделать это в моем терминале. Я имею в виду, что я знаю, как использовать команду «sudo» для входа в систему как пользователь, но я не думаю, что люди предлагали это сделать с помощью sudo.

много спасибо.

ответ

3

Возможно, вам необходимо настроить доступ без ключа ssh с сервера hudson к серверу git. Для этого выполните следующие действия:

  1. Войдите в систему hudson как пользователь hudson.
  2. Из окна терминала типа ssh-keygen
  3. Оставьте фразу пустого
  4. Укажите имя файла для частного и открытого ключей пара.
  5. Войдите в систему git как пользователь git.
  6. Скопируйте открытый ключ с шага 4 в систему git
  7. С терминала запустите следующую команду, чтобы добавить открытый ключ hudson в файл ключей авторизации git. cat {public key file} >> ~/.ssh/authorized_keys. Сначала вы должны создать резервную копию файла authorized_keys, если он уже существует.
  8. Проверьте это, возвращаясь к системе hudson и попытавшись установить ssh {git system name}. Если это сработает, вы сможете подключиться без предоставления пароля. Затем попытайтесь клонировать репозиторий и снова строить.
  9. Если он не работает, обязательно удалите ключ из файла authorized_keys.
+0

это может показаться очень глупым, но я смутился с самого первого шага. остальная часть шагов выглядит идеально. когда вы говорите, что вход в систему hudson в качестве пользователя hudson, означало ли вы создание пользователя, называемого «jenkins» на моей машине, или входа в учетную запись hudson моей компании через интерфейс и с моим обычным идентификатором и паролем. Большое спасибо за то, что помогли мне. – Ashish

+0

В системе, в которой hudson установлен, регистрируется как пользователь, процессы хадсона настроены так, как выполняется. То, что вы хотите сделать, это настроить его, чтобы хадсон-процессы могли аутентифицироваться на сервере git с помощью keyless ssh, и для того, чтобы учетная запись, использующая процессы hudson, должна иметь закрытый ключ. – mjk

0

Известная ошибка вокруг git-плагина в Дженкинсе.

https://issues.jenkins-ci.org/browse/JENKINS-24368

Места каталога ключевых файлов выше, зависит от того, вы используете Cygwin или установленный GIT пакет (т.е. C: \ Program Files \ GIT). Дженкинс будет писать файлы учетных данных и должен быть независим от подчиненного.