web-dev-qa-db-fra.com

Pourquoi le plugin GIT dans Jenkins ne parvient-il pas à se connecter au référentiel GIT?

J'essaie d'extraire le code GIT à l'aide du plugin GIT Jenkins et le travail s'exécute sur une machine esclave.

MASTER le système a http_proxy=mycom.domain.com:80

et dans le système SLAVE, aucun http_proxy n'est défini.

Chaque fois que je fais git clone localement dans la machine SLAVE, cela fonctionne parfaitement, cependant, de Jenkins, je n'ai pas réussi.

Il jette l'erreur suivante:

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

Est-ce parce que le système MASTER essaie de définir un proxy http qui n'est pas présent dans le système SLAVE

Si oui, comment l'éviter?

Ou y a-t-il autre chose qui me manque?

6
ANIL

Il s'est avéré que c'était un problème de proxy.

Lors de l'extraction du code de GIT à l'aide de Jenkins, le code http_proxy était défini sur mycom.domain.com:80 (MASTER proxy de la machine) et ce proxy n'était pas requis sur l'ordinateur SLAVE.

Donc, je viens d'ajouter l'URL GIT à la section (Manage Jenkins -> Manage Plugins -> Advanced -> HTTP Proxy Configuration -> Added GIT URL in No Proxy Host field) de No Proxy Host dans Jenkins et maintenant cela fonctionne bien.

0
ANIL

Aujourd'hui, j'ai également installé les jenkins avec le référentiel git, j'ai travaillé pour moi, j'espère que cela aidera, 

Pour connecter git à jenkins, procédez comme suit:

ÉTAPE 1 . Après l'installation réussie de plugins, créez un nouveau travail comme celui-ci:

1.créer un nom de job

2.a coché la case d'option Construire un projet de logiciel maven

3. cliquez sur OK

ÉTAPE 2 . Maintenant, cochez le bouton radio pour Git entrez l'URI de votre référentiel Git.

ÉTAPE 3 . Si vous voyez l'erreur comme

Échec de la connexion au référentiel: la commande "git ls-remote -h [email protected] HEAD" a renvoyé le code d'état 128: Stdout: Stderr: fatal: "[email protected]" n'apparaît pas. être un dépôt git fatal: l'extrémité distante a raccroché de manière inattendue

Vous devez faire plus de configuration:

1.Allez au terminal

2. Exécutez cette commande: Sudo visudo

3.Ajouter% jenkins ALL = NOPASSWD: ALL dans ce fichier où Sudo previlage est défini.et fermez le fichier.

4. vous connecter en tant qu'utilisateur jenkins via la commande: Sudo su jenkins

5.Créez un répertoire .ssh dans le répertoire personnel jenkins.

6.créez la paire de clés privées publiques comme ceci.

Génération de clés SSH:

1: Vérifier les clés SSH

Premièrement, nous devons vérifier les clés ssh existantes sur votre ordinateur. Ouvrez le terminal et lancez:

cd ~/.ssh Vérifie si un répertoire nommé ".ssh" se trouve dans votre répertoire utilisateur.

S'il indique "Aucun fichier ou répertoire de ce type", passez à l'étape 2. Sinon, vous avez déjà une paire de clés existante et vous pouvez passer à l'étape 3.

2: Générer une nouvelle clé SSH

Pour générer une nouvelle clé SSH, entrez le code ci-dessous. Nous voulons les paramètres par défaut. Lorsque vous êtes invité à entrer un fichier dans lequel enregistrer la clé, appuyez simplement sur Entrée.

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

Crée une nouvelle clé ssh, en utilisant le courrier électronique fourni comme étiquette Génération d'une paire de clés rsa publique/privée. Entrez le fichier dans lequel enregistrer la clé (/home/you/.ssh/id_rsa):Maintenant, vous devez entrer une phrase secrète ou un fichier. Appuyez sur Entrée sans rien écrire.

Ce qui devrait vous donner quelque chose comme ça:

Votre identification a été enregistrée dans /home/you/.ssh/id_rsa

Votre clé publique a été enregistrée dans /home/you/.ssh/id_rsa.pub. L'empreinte digitale clé est:

01: 0f: f4: 3b: ca: 85: d6: 17: a1: 7d: f0: 68: 9d: f0: a2: db [email protected]

3: Ajoutez votre clé SSH à GitHub

Allez dans les paramètres de votre compte

4: Balise Under Source Management,

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

Sous balise Execute Shell vous pouvez mettre vos scripts à exécuter.

Enfin, cliquez sur Build Now pour créer la construction, puis sur Open Console pour vérifier l’état.

2
lazyborg

Avant d'extraire le projet, essayez de définir le proxy HTTP dans la configuration globale:

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

Si vous devez fournir un nom d'utilisateur et un mot de passe pour votre proxy, vous pouvez utiliser:

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

1
Ala Eddine JEBALI