Ich habe einen Filezilla-Server, der auf einem Remote-Computer mit Windows 7 läuft. Ich habe einen laufenden Jenkins-Master mit einem Slave, der unter Debian 7 installiert ist.
Wenn ich eine SSH-Verbindung zum Debian7-Slave herstelle und ein FTP/Put zum Filezilla-Server ausführe, kann ich problemlos eine test.txt-Datei hochladen:
$ ftp myfileZillaFtp 21
Connected to myfileZillaFtp.
220-FileZilla Server version 0.9.41 beta
220-written by Tim Kosse ([email protected])
220 Please visit http://sourceforge.net/projects/filezilla/
Name (myfileZillaFtp:jenkins): admin
331 Password required for admin
Password:
230 Logged on
Remote system type is UNIX.
ftp> cd test
250 CWD successful. "/test" is current directory.
ftp> put test.txt
local: test.txt remote: test.txt
200 Port command successful
150 Opening data channel for file transfer.
226 Transfer OK
6364 bytes sent in 0.00 secs (24959.2 kB/s)
ftp>
Aber wenn ich denselben Schritt in einem Jenkins-Freestyle-Job ausführe, in dem ich basierend auf der Anweisung hier einen FTP-Veröffentlichungsschritt hinzugefügt habe:
https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+FTP+Plugin
Ich bekomme:
FTP: Connecting from host [debian7-slave]
FTP: Connecting with configuration [myfileZillaFtp] ...
220-FileZilla Server version 0.9.41 beta
220-written by Tim Kosse ([email protected])
220 Please visit http://sourceforge.net/projects/filezilla/
FTP: Logging in, command printing disabled
FTP: Logged in, command printing enabled
CWD test
250 CWD successful. "/test" is current directory.
FTP: Remote root is not absolute, getting absolute directory from PWD
PWD
257 "/test" is current directory.
TYPE I
200 Type set to I
CWD /test
250 CWD successful. "/test" is current directory.
PASV
227 Entering Passive Mode (172,22,80,8,192,46)
FTP: Disconnecting configuration [myfileZillaFtp] ...
ERROR: Exception when publishing, exception message [Connection timed out]
Build step 'Send files over FTP' changed build result to UNSTABLE
Finished: UNSTABLE
Warum schlägt der FTP-Upload fehl, wenn er über Jenkins ausgeführt wird?
BEARBEITEN:
Höchstwahrscheinlich ein Fehler in: https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+FTP+Plugin
Mit diesem Plugin funktioniert es: http://wiki.hudson-ci.org/display/HUDSON/FTP-Publisher+Plugin
Alle Vorschläge sind jedoch weiterhin willkommen.
Antwort1
Ich hatte das gleiche Problem. Ich konnte die Übertragung zum Laufen bringen, indem ich das Plugin auf „Aktiven Datenmodus verwenden“ konfigurierte. Stellen Sie außerdem sicher, dass Sie Verbindungen auf Port 21 von Ihrem Jenkins-Server zulassen.
Antwort2
Zunächst können wir uns mit dem Befehl LFTP beim FTP-Server anmelden, besser ist der FTP-Befehl.
Jetzt können wir ...
- Installieren derPlugin „Über FTP veröffentlichen“bei Jenkins.
- Einrichten eines FTP-Serverkontos unterGeschäftsführer Jenkins.
- Einstellen von Push-Dateien beiJob konfigurieren.
- Jetzt bauen.