2016-07-19 11 views
23

ich folgende this tutorial:Kasse Jenkins Pipeline Git SCM mit Anmeldeinformationen?

node { 
    git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git' 
    ... 
} 

aber es sagt nicht, wie Anmeldeinformationen hinzuzufügen. Jenkins hat spezifische "Credentials" Abschnitt, wo Sie Benutzer Benutzer & übergeben, und dann bekommen ID dafür in Jobs zu verwenden, aber wie verwende ich das in Pipeline-Anweisungen?

Ich habe versucht, mit:

git([url: '[email protected]:company/repo.git', branch: 'master', credentialsId: '12345-1234-4696-af25-123455']) 

kein Glück:

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. 

Gibt es eine Möglichkeit, die creds in Pipeline konfigurieren oder muss ich SSH-Schlüssel zu Jenkin Linux-Benutzer-.ssh setzen/authorized_keys Datei?

In der idealen Welt würde ich gerne ein Repository für Pipeline-Jobs und Repo-Keys haben, dann Docker Jenkins starten und diese Jobs und Schlüssel dort dynamisch hinzufügen, ohne etwas in Jenkins Console konfigurieren zu müssen.

Antwort

48

Sie können die folgenden in einer Pipeline verwenden:

git branch: 'master', 
    credentialsId: '12345-1234-4696-af25-123455', 
    url: 'ssh://[email protected]:company/repo.git' 

Wenn Sie die ssh url dann Ihre Anmeldeinformationen verwenden Benutzername + privaten Schlüssel sein müssen. Wenn Sie die HTTPS-Klon-URL anstelle der SSH-URL verwenden, sollten Ihre Anmeldeinformationen mit Benutzername + Kennwort versehen sein.

+0

Das reparierte es, danke. Mir war nicht bekannt, dass SSH-URL und HTTPS-URL unterschiedliche Zugangsdaten benötigen! – Render

+1

es war hilfreich, aber 'credentialsId' kommt von ID in [' /var/lib/jenkins/credentials.xml'](https://Stackoverflow.com/a/35603191/432903), da ich mich mühte, es herauszufinden aus. – prayagupd

+4

@prayagupd, sollten Sie in der Lage sein, die Berechtigungs-ID von der Anmeldungsseite ("http: // yourjenkinsinstall/credentials") zu bekommen. Keine Notwendigkeit, die Konfigurationsdateien zu durchsuchen. –

5

Wenn Sie ssh-Anmeldeinformationen verwenden möchten,

git(
     url: '[email protected]<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 

wenn Sie Anmeldeinformationen Benutzername und Passwort verwenden, müssen Sie http Klon verwenden, wie @Serban erwähnt.

git(
     url: 'https://github.com/<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 
Verwandte Themen