2017-05-29 12 views
1

Ich habe einige Jenkins Jobs definiert mit Jenkins Pipeline Model Definition, die NPM-Projekte erstellen. Ich benutze Docker-Container, um diese Projekte zu erstellen (mit einem gemeinsamen Image mit nur Knoten + NPM + Garn).Wie verwendet man SSH in Jenkins Pipeline?

Ergebnis der Builds sind in dist/ Ordner enthalten, die ich gezippt mit zip Pipeline-Befehl.

Ich möchte diese Zip-Datei mit SSH/SCP (mit privaten Schlüssel Auth) auf einen anderen Server kopieren. Mein privater Schlüssel wird der Jenkins-Umgebung (Anmeldeinformationen-Manager) hinzugefügt, aber wenn ich Docker-Container verwende, kann keine SSH-Verbindung hergestellt werden.

Ich habe versucht, agent { label 'master' } hinzuzufügen, Master-Jenkins-Knoten für die Dateiübertragung zu verwenden, aber es scheint einen sauberen Arbeitsbereich mit neuen Git fetch zu erstellen, und ohne meine eingebauten Dateien.

Vielen Dank im Voraus für Ihre Unterstützung.

UPDATE nach dem Versuch, SSH-Agenten Plugin:

Nach versucht SSH-Agent-Plugin, habe ich diese Ausgabe:

Identity added: /srv/jenkins3/workspace/[email protected]/private_key_370451445598243031.key (rsa w/o comment) 
[ssh-agent] Started. 
[myjob-TFD] Running shell script 
+ scp -r dist [email protected]:/var/www/xxx 
$ docker exec bfda17664965b14281eef8670b34f83e0ff60218b04cfa56ba3c0ab23d94d035 env SSH_AGENT_PID=1424 SSH_AUTH_SOCK=/tmp/ssh-k658r0O76Yqb/agent.1419 ssh-agent -k 
unset SSH_AUTH_SOCK; 
unset SSH_AGENT_PID; 
echo Agent pid 1424 killed; 
[ssh-agent] Stopped. 
Host key verification failed. 
lost connection 

Jede Idee, Remote-Host hinzufügen, wie autorisiert?

+0

Ich habe das gleiche Problem, das sshagent Plugin funktioniert nicht in einem Container – red888

Antwort

-1

Um entfernten Host zu bekannten Hosts hinzuzufügen und hoffentlich mit Ihrem Fehler fertig zu werden, versuchen Sie manuell ssh von jenkins-Host zu Ziel-Host als jenkins Benutzer.

Holen Sie sich auf Host, wo Jenkins installiert ist. Typ

sudo su jenkins

Jetzt ssh oder scp wie

ssh username @ server

verwenden Sie wie folgt aufgefordert werden sollen:

Die Authentizität des Host-Servers (IP) kann nicht festgestellt werden. ECDSA-Schlüssel Fingerabdruck ist SHA256: einige-seltsame Zeichenfolge. Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein)?

Geben Sie ja ein. Der Server wird dauerhaft als bekannter Host hinzugefügt. Mach dir nicht einmal die Mühe, ein Passwort zu übergeben, nur Strg + C und versuche, jenkins job zu laufen. Hoffe es wird helfen.

+0

Warum unten abstimmen? Es ist eine korrekte Antwort auf die aktualisierte Frage. –

Verwandte Themen