2017-01-19 2 views
4

Ich versuche, das Codeformular GIT mit GIT Plugin Jenkins zu ziehen, und der Job läuft auf einem Slave-Rechner.Warum kann das GIT-Plugin in Jenkins keine Verbindung zum GIT-Repository herstellen?

MASTER System hat http_proxy=mycom.domain.com:80

und in SLAVE System gibt es keine http_proxy definiert.

Immer wenn ich git Klon lokal in der SLAVE Maschine mache funktioniert es perfekt, aber von Jenkins habe ich nicht erfolgreich gewesen.

Es wirft den folgenden Fehler:

Building remotely on SLAVE in workspace /data/test 
> /usr/bin/git rev-parse --is-inside-work-tree # timeout=10 
Fetching changes from the remote Git repository 
> /usr/bin/git config remote.origin.url https://github.domain.com/Project-Digital/Project-eCommerce.git # timeout=10 
Fetching upstream changes from https://github.domain.com/Project-Digital/Project-eCommerce.git 
> /usr/bin/git --version # timeout=10 
using GIT_ASKPASS to set credentials 
Setting http proxy: mycom.domain.com:80 
> /usr/bin/git fetch --tags --progress https://github.domain.com/Project-Digital/Project-eCommerce.git +refs/heads/*:refs/remotes/origin/* 
ERROR: Error fetching remote repo 'origin' 
hudson.plugins.git.GitException: Failed to fetch from https://github.domain.com/Project-Digital/Project-eCommerce.git 
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:803) 
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1063) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1094) 
    at hudson.scm.SCM.checkout(SCM.java:495) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1278) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604) 
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) 
    at hudson.model.Run.execute(Run.java:1728) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:404) 
Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git fetch --tags --progress https://github.domain.com/Project-Digital/Project-eCommerce.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: 
stdout: 
stderr: error: Failed connect to github.build.ge.com:80; Operation now in progress while accessing https://github.domain.com/Project-Digital/Project-eCommerce.git/info/refs 

Ist es, weil das MASTER System HTTP-Proxy zu setzen versuchen, die in dem SLAVE System nicht vorhanden ist?

Wenn ja, wie kann ich das verhindern?

Oder gibt es noch etwas, das mir fehlt?

Antwort

0

Es stellte sich heraus, dass es ein Proxy-Problem war.

Während Sie den Code aus GIT mit Jenkins zieht es wurde die Einstellung der http_proxy-mycom.domain.com:80 (MASTER Maschine-Proxy) und diese Proxy wurde nicht in der SLAVE Maschine erforderlich.

Also, ich habe gerade die GIT-URL zu keinem Proxy-Host-Abschnitt (Manage Jenkins -> Manage Plugins -> Advanced -> HTTP Proxy Configuration -> Added GIT URL in No Proxy Host field) in Jenkins hinzugefügt und jetzt funktioniert es gut.

1

Bevor das Projekt ziehen, versuchen Sie den HTTP-Proxy in der globalen Konfiguration einzustellen:

$> git config --global http.proxy http://mycom.example.com:80

Wenn Sie einen Benutzernamen und ein Passwort für den Proxy zur Verfügung stellen müssen, können Sie verwenden:

$> git config --global http.proxy http://example.com\\<yourUsername>:<yourPassword>@<yourProxyServer>:80

1

Heute habe ich auch die jenkins mit git-Repository einrichten, arbeitete für mich, hoffe, das hilft,

Um git mit jenkins zu verbinden, machen Sie folgende Schritte:

SCHRITT 1. Nach erfolgreicher Installation von Plugins, einen neuen Job wie folgt zu erstellen:

1.Erstellen ein Jobname

2.checked das Optionsfeld Maven Softwareprojekt

3.click Erstellen von OK

SCHRITT 2. Jetzt aktiviere den Radiobutton für Git, gib die uri deines Git-Repositories ein.

SCHRITT 3. Wenn Sie den Fehler wie

konnte nicht sehen, wird Repository verbinden: Befehl "git ls-remote -h [email protected] HEAD" zurückgegebenen Statuscode 128: stdout: stderr: fatal: ‚git @ example.git‘nicht erscheint ein Git Repository tödlich zu sein: Das entfernte Ende unerwartet

Sie aufgehängt haben etwas mehr Konfiguration zu tun:

1.Zum zum Terminal

2.Run diesem Befehl: sudo visudo

3.Add% jenkins ALL = NOPASSWD: ALL in dieser Datei, in sudo previlage ist defined.and schließen Sie die Datei.

4.login als jenkins Benutzer über den Befehl: sudo su jenkins

5.Create ein .ssh Verzeichnis im jenkins Home-Verzeichnis.

6. Erstellen Sie das öffentliche private Schlüsselpaar wie folgt.

Generieren von SSH-Schlüssel:

1: prüfen für SSH-Schlüssel

Zuerst müssen wir für bestehende SSH-Schlüssel auf Ihrem Computer überprüfen. Öffnen Sie Terminal und führen:

cd ~/.ssh Prüft, ob es ein Verzeichnis „.ssh“ in Ihrem Benutzerverzeichnis

genannt wird, wenn er sagt: ‚Keine solche Datei oder das Verzeichnis‘ gehen Ansonsten 2. Schritt haben Sie bereits ein vorhandenes Schlüsselpaar, und Sie können 3.

2 Schritt überspringen: Erstellen Sie einen neuen SSH-Schlüssel

um einen neuen SSH-Schlüssel zu erzeugen, geben Sie den Code unten. Wir wollen die Standardeinstellungen. Wenn Sie aufgefordert werden, eine Datei einzugeben, in der der Schlüssel gespeichert werden soll, drücken Sie einfach die Eingabetaste.

ssh-keygen -t rsa -C "[email protected]"

Erstellt einen neuen SSH-Schlüssel, die angegebene E-Mail als Label mit Schlüsselpaar Generierung des öffentlichen/privaten rsa. Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/you/.ssh/id_rsa): Jetzt müssen Sie eine Passphrase oder Datei eingeben. Drücken Sie die Eingabetaste, ohne etwas zu schreiben.

Was Sie so etwas wie dieses geben sollte:

Ihre Identifizierung hat in /home/you/.ssh/id_rsa gespeichert.

Ihr öffentlicher Schlüssel wurde unter /home/you/.ssh/id_rsa.pub gespeichert. Der Schlüssel lautet:

01: 0f: f4: 3b: ca: 85: d6: 17: a1: 7d: f0: 68: 9d: f0: a2: db your_email @ Beispiel. com

3: Fügen Sie Ihren SSH-Schlüssel zu GitHub

Gehen Sie zu Ihrem Account-Einstellungen

4: unter Quellcodeverwaltung tag,

 Build Triggers- Build whenever a SNAPSHOT dependency is built 
     Root POM- /var/lib/jenkins/jobs/ProjectName/workspace/ProjectName/pom.xml 

Unter ausführen Shell-Tag können Sie Ihre Skripte ausführen.

Schließlich Klicken Sie auf Jetzt erstellen, um den Build zu erstellen, öffnen Sie die Konsole, um den Status zu überprüfen.

+0

Wie wäre es, den Benutzer "jenkins" zu einem bereits bestehenden Benutzer mit ssh-Schlüsselpaar zu ändern? – ANIL

+0

dafür können Sie auf diese bereits beantwortete Frage beziehen http://stackoverflow.com/questions/15314760/managing-ssh-keys-within-jenkins-for-git – lazyborg

Verwandte Themen