2016-07-19 12 views
23

byłem po this tutorial:Zamówienie Jenkins Pipeline Git SCM z poświadczeniami?

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

Jednak to nie mówi jak dodać poświadczeń. Jenkins ma specjalną sekcję "Poświadczenia", w której definiujesz hasło użytkownika użytkownika, a następnie dostajesz identyfikator, którego chcesz użyć w zadaniach, ale w jaki sposób użyć tego w instrukcjach Pipeline?

Próbowałem z:

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

bez powodzenia:

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. 

Czy istnieje sposób skonfigurować creds w rurociągu, czy muszę umieścić ssh-klucze do .ssh Jenkin za Linux użytkownika/plik authorized_keys?

W idealnym świecie chciałbym mieć repozytorium dla zadań pipeline i kluczy repo, a następnie uruchomić Docker Jenkins i dynamicznie dodawać te zadania i klucze bez konieczności konfigurowania czegokolwiek w Jenkins Console.

Odpowiedz

48

można użyć następujących w rurociągu:

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

Jeśli używasz url ssh następnie poświadczenia musi być nazwa użytkownika + klucz prywatny. Jeśli używasz adresu URL klonu https zamiast ssh, twoje dane logowania powinny zawierać nazwę użytkownika i hasło.

+0

To naprawiło to, dziękuję. Nie wiedziałem, że adres URL SSH i URL HTTPS wymagają różnych poświadczeń do pracy! – Render

+1

było pomocne, ale 'credentialsId' pochodzi z id w [' /var/lib/jenkins/credentials.xml'](https://stackoverflow.com/a/35603191/432903), ponieważ musiałem się z tym zmierzyć na zewnątrz. – prayagupd

+4

@prayagupd, powinieneś być w stanie uzyskać ID poświadczenia ze strony poświadczeń ('http: // yourjenkinsinstall/credentials'). Nie trzeba przeszukiwać plików konfiguracyjnych. –

5

Jeśli chcesz użyć poświadczeń ssh,

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

jeśli chcesz używać nazwy użytkownika i hasła poświadczeń, trzeba użyć http klon jak wspomniano @Serban.

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