2016-05-10 45 views
6

Sono nuovo sia per Jenkins che per Openshift, quindi mi legano un po '.Jenkins su Openshift non può clonare il repository

Ho impostato Jenkins e l'ho indirizzato al mio repository github, ma non posso clonarlo perché non riesco a trovare da nessuna parte dove memorizzare le credenziali git, e quando scrivo nella jenkins box non posso accedere ~/.ssh per creare nuove chiavi o trovare quelle lì dentro. Un ulteriore problema potrebbe anche essere che il mio repository git è privato.

Ho provato google ma non ho trovato nulla. Come posso consentire a Jenkins di accedere al mio repository privato di git?

modifica: ok ho trovato nella gestione, quindi la configurazione di un posto per il nome utente e l'e-mail. poi ho ssh'd in, e ho usato ssh-keygen per creare la chiave ssh in .openshift_ssh e l'ho aggiunto a github, prima come normale chiave ssh, poi come chiave deploy, e poi lo stesso in app-root/data /.ssh ma ancora nulla

+0

Oltre al "messaggio di bounty": Non sto utilizzando Github, ma spingo il codice su un telecomando su OpenShift – strah

risposta

5

Puoi provare a seguire "Building a project hosted on Github using an Openshift Jenkins instance" da Ramzi Maâlej.

Assicurarsi che Openshift non conceda l'autorizzazione di scrittura su più cartelle su un'istanza di Jenkins come: .ssh, .m2. (o ssh non funzionerebbe comunque, a causa del diritto sulle cartelle "troppo permissive")
Questo solo potrebbe essere la fonte dei tuoi problemi, ma se ciò non bastasse, continua a leggere.

Poi:

rhc ssh buildserver 
mkdir app-root/data/git-ssh 
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f $OPENSHIFT_DATA_DIR/git-ssh/id_rsa 

Distribuire l'$OPENSHIFT_DATA_DIR/git-ssh/id_rsa.pub-your GitHub account

Creare uno script ssh-wrapper.sh che fa la seguente:

#!/bin/bash 

ID_RSA="$OPENSHIFT_DATA_DIR/git-ssh/id_rsa" 
KNOWN_HOSTS="$OPENSHIFT_DATA_DIR/git-ssh/known_hosts" 

ssh -o UserKnownHostsFile=$KNOWN_HOSTS -i $ID_RSA $1 $2 

Non dimenticate di renderlo eseguibile: chmod +x ssh-wrapper.sh

test è:

./ssh-wrapper.sh -T [email protected] 
Hi Jenkins! You've successfully authenticated, but GitHub does not provide shell access. 

Infine, configurare Jenkins:

andare a Manage Jenkins > Configure System > Global Properties e creare una nuova variabile d'ambiente chiamata GIT_SSH che si riferisce alla posizione in cui è stato creato l'involucro.

+0

Anche se non era esattamente quello che chiedevo :-) Ho deciso ora di ospitare il progetto su BitBucket e la tua soluzione funziona anche per questo. – strah

0

SSH nell'app Jenkins e utilizzare la chiave pubblica contenuta in $OPENSHIFT_DATA_DIR/.ssh/jenkins_id_rsa.pub come chiave di distribuzione Github/Gitlab/Bitbucket.