Настройка Jenkins для работы с BitBucket
Я пытаюсь настроить Jenkins на моем Mac mini, чтобы извлечь исходный код моего проекта iOS из BitBucket и автоматически его собрать. Я уже прошел через основные хорошо известные проблемы генерации ключей ssh, загрузки их в BitBucket, выполнения ssh-соединения через консоль для добавления хоста в список известных (вы можете найти все мои приключения здесь и здесь). Сейчас в моей системе 3 пользователя: A,B и Shared. Когда я установил Jenkins, он автоматически поместил себя в Shared, но я сгенерировал ключи ssh с пользователем A. Так что просто для ясности В домашнем каталоге A есть каталог.ssh с открытыми и закрытыми ключами.
Когда я пытаюсь выполнить задание Jenkins, я получаю следующее сообщение об ошибке:
Started by user anonymous
Building in workspace /Users/Shared/Jenkins/Home/jobs/myprojectAdHocBuild/workspace
Checkout:workspace / /Users/Shared/Jenkins/Home/jobs/myprojectAdHocBuild/workspace - hudson.remoting.LocalChannel@625cb0bb
Using strategy: Default
Cloning the remote Git repository
Cloning repository git@bitbucket.org:myuser/myproject.git
git --version
git version 1.8.0
ERROR: Error cloning remote repo 'origin' : Could not clone git@bitbucket.org:myuser/myproject.git
hudson.plugins.git.GitException: Could not clone git@bitbucket.org:myuser/myproject.git
at hudson.plugins.git.GitAPI.clone(GitAPI.java:271)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1036)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:978)
at hudson.FilePath.act(FilePath.java:851)
at hudson.FilePath.act(FilePath.java:824)
at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:978)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1134)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1325)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
at hudson.model.Run.execute(Run.java:1516)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:236)
Caused by: hudson.plugins.git.GitException: Command "/usr/local/git/bin/git clone --progress -o origin git@bitbucket.org:myuser/myproject.git /Users/Shared/Jenkins/Home/jobs/myprojectAdHocBuild/workspace" returned status code 128:
stdout: Cloning into '/Users/Shared/Jenkins/Home/jobs/myprojectAdHocBuild/workspace'...
stderr: Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:885)
at hudson.plugins.git.GitAPI.access$000(GitAPI.java:40)
at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:267)
at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:246)
at hudson.FilePath.act(FilePath.java:851)
at hudson.FilePath.act(FilePath.java:824)
at hudson.plugins.git.GitAPI.clone(GitAPI.java:246)
... 14 more
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:1048)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:978)
at hudson.FilePath.act(FilePath.java:851)
at hudson.FilePath.act(FilePath.java:824)
at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:978)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1134)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1325)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
at hudson.model.Run.execute(Run.java:1516)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:236)
Как вы можете видеть, это терпит неудачу, когда Хадсон пытается запустить команду GIT. Странно то, что если я попытаюсь бежать
/usr/local/git/bin/git clone --progress -o origin git@bitbucket.org:myuser/myproject.git /Users/Shared/Jenkins/Home/jobs/myprojectAdHocBuild/workspace
В моей консоли все работает нормально (после исправления небольшой проблемы, связанной с разрешением записи в папке с помощью chmod)
Я обнаружил сообщение, сообщающее об аналогичной ошибке, в котором указаны возможные варианты, но я не уверен, как правильно выполнять эти операции на моей консоли. Похоже, что Дженкинс пытается запустить команду с пользователем, у которого нет разрешения на получение соответствующих ключей из моего каталога.ssh. Не совсем уверен. Может быть, этот вывод может помочь:
MacMini:~ myuser$ ps axu | grep "/jenkins"
myuser 11660 0.0 4.6 2918124 97096 ?? S 6:59pm 1:05.63 /usr/bin/java -jar /Users/myuser/Library/Caches/org.jenkins-ci.jenkins/jenkins.war
jenkins 9896 0.0 9.0 2939824 188552 ?? Ss 4:06pm 17:55.91 /usr/bin/java -jar /Applications/Jenkins/jenkins.war
myuser 11930 0.0 0.0 2432768 588 s000 S+ 10:28am 0:00.00 grep /jenkins
MacMini:~ myuser$ ps axu | grep tomcat
myuser 11932 0.0 0.0 2432768 588 s000 S+ 10:28am 0:00.00 grep tomcat
MacMini:~ myuser$
Я действительно надеюсь решить эту проблему, потому что я хотел бы написать очень подробное руководство со всей информацией, которую я нашел, распространенной по сети.
1 ответ
Хорошо, может быть, я нашел решение здесь: http://colonelpanic.net/2011/06/jenkins-on-mac-os-x-git-w-ssh-public-key/