2015-05-29 6 views
9

Ich versuche Jenkins einzurichten, um mit git webhooks zu arbeiten. Bisher habe ichJenkins kann den Repo - Code nicht abrufen 255 verweigert

  • Jenkins läuft
  • Erstellt eine SSH-Schlüsselpaar unter dem jenkins Benutzer
  • Added der Schlüssel zu git bereitstellen Schlüssel
  • Added die git-Plugin
  • Projekt konfiguriert git verwenden mit dem Repo
  • Setzen Sie den Zweig auf */develop, um nur den Dev-Zweig zu beobachten
  • Legen Sie das benutzerdefinierte Arbeitsbereich-Verzeichnis auf 0 fest
  • Hinzugefügt wurde die ubunutu Gruppe an den jenkins Benutzer (siehe unten)

Und wenn das Projekt zu erstellen versucht, bekomme ich diesen Fehler:

Started by user anonymous 
Building in workspace /data/www/<site> 
> git rev-parse --is-inside-work-tree # timeout=10 
Fetching changes from the remote Git repository 
> git config remote.jenkins.url [email protected]:<repo_url> # timeout=10 
ERROR: Error fetching remote repo 'jenkins' 
hudson.plugins.git.GitException: Failed to fetch from [email protected]:<repo_url> 
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:735) 
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:983) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1016) 
    at hudson.scm.SCM.checkout(SCM.java:485) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1276) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610) 
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532) 
    at hudson.model.Run.execute(Run.java:1744) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:374) 
Caused by: hudson.plugins.git.GitException: Command "git config remote.jenkins.url [email protected]:<repo_url>" returned status code 255: 
stdout: 
stderr: error: could not lock config file .git/config: Permission denied 

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1591) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1567) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1563) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1249) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1261) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.setRemoteUrl(CliGitAPIImpl.java:961) 
    at hudson.plugins.git.GitAPI.setRemoteUrl(GitAPI.java:160) 
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:723) 
    ... 11 more 
ERROR: Error fetching remote repo 'jenkins' 

Der Repo wurde bereits von einem gezogen worden anderer Benutzer (in diesem Fall ubuntu:ubuntu) in der Verzeichnis, so zunächst dachte ich, Hinzufügen der ubunutu Gruppe jenkins würde das Problem beheben, aber kein Glück. Ich habe auch versucht, mich als jenkins Benutzer anzumelden und das Repo zu ziehen, was ich erfolgreich tun kann.

Ich habe versucht, googeln alles, was ich denken kann, aber die meisten Suchvorgänge zeigen auf Menschen, die Schlüsselprobleme haben, anstatt Config Dateierlaubnis Probleme. An diesem Punkt habe ich keine Ideen mehr.

Edit:

ls -la im .git dir:

drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 5 12:13 branches 
-rw-rw-r-- 1 ubuntu ubuntu  15 Mar 5 18:09 COMMIT_EDITMSG 
-rw-rw-r-- 1 jenkins jenkins 318 Jun 1 14:55 config 
-rw-rw-r-- 1 ubuntu ubuntu  73 Mar 5 12:13 description 
-rw-rw-r-- 1 ubuntu ubuntu  88 May 29 12:50 FETCH_HEAD 
-rw-rw-r-- 1 ubuntu ubuntu  24 May 28 13:21 HEAD 
drwxrwxr-x 2 ubuntu ubuntu 4096 May 28 13:49 hooks 
-rw-rw-r-- 1 ubuntu ubuntu 36480 May 29 12:50 index 
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 5 12:13 info 
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 5 12:13 logs 
drwxrwxr-x 260 ubuntu ubuntu 4096 Apr 10 10:40 objects 
-rw-rw-r-- 1 jenkins jenkins 41 May 29 11:53 ORIG_HEAD 
-rw-rw-r-- 1 ubuntu ubuntu 179 Mar 5 12:13 packed-refs 
drwxrwxr-x 5 ubuntu ubuntu 4096 Mar 5 12:13 refs 

ls -la aus dem Elternverzeichnis (es ist ein Laravel 5 app):

drwxrwxr-x 13 ubuntu ubuntu 4096 Apr 3 11:07 app 
-rwxrwxr-x 1 ubuntu ubuntu 2452 Mar 5 12:13 artisan 
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 11 08:18 bootstrap 
-rwxrwxr-x 1 ubuntu ubuntu 1094 Mar 11 08:16 composer.json 
-rw-rw-r-- 1 ubuntu ubuntu 79004 Mar 11 08:17 composer.lock 
-rwxrwxr-x 1 ubuntu ubuntu  146 Mar 5 12:13 CONTRIBUTING.md 
drwxrwxr-x 8 ubuntu ubuntu 4096 May 6 09:45 frontend 
drwxrwxr-x 8 ubuntu ubuntu 4096 Jun 1 14:56 .git 
-rwxrwxr-x 1 ubuntu ubuntu  12 Mar 5 12:13 .gitattributes 
-rwxrwxr-x 1 ubuntu ubuntu  160 Mar 5 12:13 .gitignore 
-rwxrwxr-x 1 ubuntu ubuntu  567 Mar 5 12:13 phpunit.xml 
drwxrwxr-x 7 www-data www-data 4096 Mar 5 17:13 public 
-rwxrwxr-x 1 ubuntu ubuntu 2051 Mar 5 12:13 readme.md 
-rwxrwxr-x 1 ubuntu ubuntu  519 Mar 5 12:13 server.php 
drwxrwxr-x 29 ubuntu ubuntu 4096 Mar 11 08:18 vendor 

Gruppen:

$ cat /etc/group | grep jenkins 
ubuntu:x:1000:jenkins 
jenkins:x:113: 

$ cat /etc/group | grep ubuntu 
adm:x:4:syslog,ubuntu 
dialout:x:20:ubuntu 
cdrom:x:24:ubuntu 
floppy:x:25:ubuntu 
sudo:x:27:ubuntu 
audio:x:29:ubuntu 
dip:x:30:ubuntu 
video:x:44:ubuntu 
plugdev:x:46:ubuntu 
netdev:x:102:ubuntu 
ubuntu:x:1000:jenkins 
+0

Haben Sie Ihr Problem gelöst?Wenn ja, bearbeite ich meine Antwort so, dass Sie sie akzeptieren können. – RPresle

+0

Haben Sie versucht, Ihren Server neu zu starten, um sicherzustellen, dass die neue Gruppenmitgliedschaft 'jenkins' Mitglied von 'ubuntu' aufgenommen wird? – javabrett

+0

Wir haben es auf einige Arten von Berechtigungsproblemen beschränkt, müssen aber die genaue Ursache des Problems noch herausfinden. Für jetzt sind wir daran gearbeitet. – Samsquanch

Antwort

2

Überprüfen Sie den Besitzer/die Berechtigungen der Datei .git/config im jenkins-Arbeitsbereich. Es ist wahrscheinlich immer noch im Besitz des Ubuntu-Benutzers. Ändern Sie den Besitzer in den Benutzer jenkins.

+0

Es gehört dem Ubuntu-Benutzer, aber Jenkins ist in der Ubunutu-Gruppe, von der ich annahm, dass sie genug wäre? Und wenn nicht, warum kann ich manuell ziehen, wenn ich als Benutzer jenkins eingeloggt bin? – Samsquanch

+0

'jenkins' in der Gruppe 'ubuntu' ist in Ordnung, vorausgesetzt, Sie haben einen Neustart/Neustart durchgeführt. – javabrett

1

Vielleicht hast du es schon angeschaut, aber ich habe a forum post gefunden, wo Links zu Tickets gegeben wurden. Geh durch sie hindurch, vielleicht findest du etwas.

Unter Berufung:

  • JENKINS-21914 - entspricht Ihre Fehlermeldung, aber ich kann es nicht zu einem doppelten
  • JENKINS-21376 - verschiedener Fehlermeldung, aber miteinander verbundene Datei
  • JENKINS-24179 zu sperren - verschiedene Fehlermeldung
  • JENKINS-25353 - verweilende Sperrdatei (nicht wahrscheinlich bezogen auf diese)

Mehr relevent aufgeführten Fehler sind:

  • .git\config.lock Bedürfnisse
  • Need git-client-plugin Version 1.6.2 mindestens
+0

'Git-Client-Plugin' ist bei 1.17.1. 'config.lock' existiert nicht. Der Fehler bezieht sich nur auf 'config'. – Samsquanch

+0

Könnten Sie uns das Ergebnis von ls -la im .git-Verzeichnis und im übergeordneten Verzeichnis angeben? Und Katze/etc/group | Grep Jenkins und Katze/etc/Gruppe | grep ubuntu. Ich möchte über die Erlaubnis sicher sein. – RPresle

+0

Alle diese Informationen zu der Frage hinzugefügt. – Samsquanch

0

Um dies zu beheben, die gelöscht werden soll, sollten Sie so oder so auf die Login jenkins Benutzer (mit der Zusicherung, dass Jenkins läuft als jenkins), mit die gleiche Umgebung der Jenkins-Dienst läuft mit, dann cd /data/www/<site>/.git dann ls -als config.lock und touch config.lock. Dies ist die Datei, mit der Git Probleme beim Erstellen hat - diese Befehle prüfen, ob sie bereits existiert, und wenn nicht, ob der Benutzer jenkins sie erstellen kann.

So unwahrscheinlich wie es scheint, das wahrscheinlichste Problem ist, dass Sie einige Dinge neu starten oder neu starten müssen, da new group-membership permissions are not applied to existing processes or their children. Hast du Jenkins neu gestartet? Wenn nicht, stoppe Jenkins, und abhängig davon, wie es gestartet wird - du brauchst eine neue Shell - starte es neu Starten Sie den Server neu, wenn Sie wirklich sicher sein müssen.

Bitte melden Sie auch Ihren Dateisystemtyp und Mount-Optionen.

0

Es ist ein Fehler in rubygems/installer.rb

Verwenden gem update --system rubygems zu aktualisieren stabile Version neuesten, die dieses Problem behebt.

0

erhielt das gleiche Problem nach Jenkins Maschine neu gestartet wurde, reparierte sie die Anmeldeinformationen für Proxy in .gitconfig zusammen mit Löschen des Auftragsordner von Jenkins Arbeitsplatz Aktualisierung wie folgt:

$ cat ~/.gitconfig 

aktualisiert unten als:

[http] 
     proxy = http://username:[email protected]:80 
     sslverify = false 
[https] 
     proxy = http://username:[email protected]:80 
     sslverify = false 
[url "http://github.com/"] 
     insteadOf = git://github.com/ 

[user] 
     name = Arpit Aggarwal 
     email = [email protected] 
[core] 
     autocrlf = true 
     excludesfile = C:\\Data\\gitignore_global.txt 
1

Das funktioniert mir ziemlich nett Form:

1 Finden Sie die git config.lock Datei, in der jenkins Ordner Lauf -:

find . -type f -name "config.lock"

2 - Löschen Sie die Datei config.lock gegründet.

Das ist es!

Verwandte Themen