2017-05-13 4 views
0

Ich versuche, jenkins zu verwenden, um einen sftp-Upload zu automatisieren und zu ersetzen, so dass ein Ordner auf einem sftp-Server dem git-Repository entspricht. Dies wird mit sftp gehostet, das auf einem OpenShift-laufenden nginx gehostet wird, das nur ftp unter Verwendung eines ssh-Schlüssels unterstützt, den ich bereits mit seinem rhc-Client erzeugt habe. Ich bin in der Lage, leicht zu sftp mit filezilla mit Anweisungen auf https://blog.openshift.com/using-filezilla-and-sftp-on-windows-with-openshift/ verbinden.Wie verwende ich sftp auf Git-FTP-Client?

Ich fand die nützlichste und Zeiteffizienz würde ein Werkzeug namens git-ftp verwenden.

Die Schritte sind ziemlich vorwärts für FTP mit einem Benutzernamen, Passwort und FTP-Server-Domäne. Ich habe Probleme damit, es mit meinem ssh-Schlüssel sftp zu machen. Hier ist eine Website, die ich mit der besten Dokumentation für Befehle gefunden habe. Referenz: http://manpages.ubuntu.com/manpages/trusty/man1/git-ftp.1.html.

Ich folgte dieser Anleitung, um die Jenkins Automation Setup https://www.savjee.be/2016/02/Use-Jenkins-and-git-ftp-to-deploy-website-to-shared-webhosting/ zu bekommen. Dies zeigt jedoch nicht den Befehl, sftp zu verwenden.

Ich habe https://tohin.wordpress.com/2014/02/11/git-and-sftp/ verwendet, um ein paar verschiedene Befehle ohne viel Glück zu versuchen.

Angeblich soll dies funktioniert mit ftp nur geben, Benutzername, Passwort und FTP-Server:

git ftp init --user USERNAME --passwd PASSWORD ftp://YOUR-FTP-SERVER-ADDRESS/path/to/website/ 

ich eingestellt habe ich zu sein:

git ftp init -u <openshiftsshtoken> --sftp-key ~/.ssh/id_rsa sftp://YOUR-FTP-SERVER-ADDRESS/app-root/data/html/<foldertouploadto> 

Aber es ist mir ein paar Fehler zu werfen.

Ich möchte ein git ftp Push nach der Initialisierung und sicherstellen, dass die sftp funktioniert. Z.B.

git ftp push -u <openshiftsshtoken> --sftp-key ~/.ssh/id_rsa sftp://YOUR-FTP-SERVER-ADDRESS/app-root/data/html/<foldertouploadto> 

Könnte jemand auf die Fehler hinweisen, die ich habe? Es gab einige Probleme mit der Verwendung von SFTP mit Git-ftp in der Vergangenheit

+0

"Aber es wirft mir ein paar Fehler" Welche Fehler produziert es? Was genau sagen sie? Können Sie mit einem normalen sftp-Client eine SFTP-Verbindung zu diesem Remote-System herstellen? – Kenster

+0

Die Fehler waren nicht beschreibend, es stürzte nur, ich endete mit rsync, um die Aufgabe zu behandeln. Es ist viel effizienter und kann Dateien am Ziel entfernen, die nicht an der Quelle sind. – lastlink

Antwort

0

können Sie versuchen, sftp protocol sowie port:22 als

git ftp init --user USERNAME --passwd PASSWORD sftp://domain.com:22/public_html/path/to/website/ 
1

eingeben. Sie können sich einem oder mehreren von ihnen stellen.

  1. Sie müssen die SSH privaten Schlüssel mit der --key Option zur Verfügung zu stellen. Sie verwenden eine andere Option. Stellen Sie außerdem sicher, dass Sie auch einen öffentlichen Schlüssel haben.

  2. SFTP nimmt standardmäßig absolute Pfade auf dem Server an. Wenn sich /app-root nicht im Stammverzeichnis Ihres Servers, sondern im Ausgangsverzeichnis Ihres Benutzers befindet, versuchen Sie es mit der URL sftp://YOUR-FTP-SERVER-ADDRESS/~/app-root/.... Ich fügte ~/ hinzu.

  3. Und zuletzt, wenn Sie nicht den Fingerabdruck des Servers in Ihrem bekannten Hosts-Datei in der gleichen Weise wie Curl es erwarten würde, dann müssen Sie entweder hinzufügen oder verwenden Sie die Flag.

Schließlich hier als Beispiel aus der current manual:

git ftp init -u "john" --key "$HOME/.ssh/id_rsa" "sftp://example.com/~/public_html" 
0

Wie wäre es zuerst die --vv Parameter versuchen, den genauen Fehler zu zeigen?

git ftp init -u <openshiftsshtoken> --sftp-key ~/.ssh/id_rsa sftp://YOUR-FTP-SERVER-ADDRESS/app-root/data/html/<foldertouploadto> -vv