无法从 jenkins 通过 FTP 传输到远程 Windows 服务器(使用 Publish Over FTP 插件)

无法从 jenkins 通过 FTP 传输到远程 Windows 服务器(使用 Publish Over FTP 插件)

我在远程 Windows 7 机器上运行着一个 filezilla 服务器。我有一个正在运行的 jenkins 主服务器,还有一个安装在 Debian 7 上的从服务器。

如果我通过 ssh 连接到 debian7 从属服务器并执行 ftp/put 到 filezilla 服务器,我就可以正常上传 test.txt 文件:

$ 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> 

但是,如果我在 Jenkins 自由式作业中运行相同的步骤,其中我根据此处的说明添加了 FTP 发布步骤:

https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+FTP+Plugin

我得到:

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

为什么通过jenkins运行ftp上传会失败?

编辑:

最有可能的错误在于: https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+FTP+Plugin

它与这个插件一起工作: http://wiki.hudson-ci.org/display/HUDSON/FTP-Publisher+Plugin

尽管如此,我们仍然欢迎任何建议。

答案1

我遇到了同样的问题。我能够通过将插件配置为“使用主动数据模式”来使传输正常运行。另外,请确保您允许从 Jenkins 服务器在端口 21 上进行连接。

答案2

首先,我们可以使用lftp命令登录ftp服务器,最好是ftp命令。

现在,我们可以......

  1. 安装通过 FTP 发布插件在詹金斯。
  2. 设置 ftp 服务器帐户詹金斯经理
  3. 设置推送文件作业配置
  4. 立即构建。

相关内容