【问题标题】:Publish over SSH Jenkins shows X files transferred, but nothing shows通过 SSH 发布 Jenkins 显示 X 文件已传输,但没有显示
【发布时间】:2020-01-22 00:48:49
【问题描述】:

我已经在服务器 A 上设置了 Jenkins,并通过 SSH 发布到我的另一台服务器 B。

我已经使用公钥在两台服务器之间创建了 SSH 连接。我可以使用“ssh jenkins@website.com”手动登录到服务器 B(在服务器 A 上),我可以导航到我想要部署文件的文件夹并在那里创建文件(它是 jenkins 用户主目录)。

但是,在 Jenkins 中使用 Publish over SSH 插件执行此步骤时,日志显示“已传输 3371 个文件”,但我的主目录在服务器 B 上仍为空。

这些是 /var/log/secure 的日志:

Jan 21 09:14:27 Server-B sshd[43388]: Accepted publickey for jenkins from 12.34.567.891 port 46548 ssh2: RSA SHA256:xxxxx
Jan 21 09:14:27 Server-B sshd[43388]: pam_unix(sshd:session): session opened for user jenkins by (uid=0)
Jan 21 09:14:52 Server-B sshd[43388]: pam_unix(sshd:session): session closed for user jenkins

Jenkins 中的控制台输出:

SSH: Connecting from host [Server B]
SSH: Connecting with configuration [Server B name] ...
SSH: Disconnecting configuration [Server B name] ...
SSH: Transferred 3371 file(s)

在 Jenkins 设置中,我确认两台服务器之间的连接成功并且通过“测试连接”按钮工作。

在作业中,我已将源文件配置为

**/*

(我要传输的文件位于那里,从 git 克隆)。

我的远程目录被指定为:

/home/jenkins/test_deploy

【问题讨论】:

  • 登录到服务器 B 并在那里搜索文件,可能问题出在您的路径中
  • 你说得对。它把它放在 /home/jenkins/home/jenkins/test_deploy/* 下,为什么要这样做?我输入/home/jenkins/test_deploy作为远程目录,那不是绝对路径吗?

标签: git jenkins ssh scp


【解决方案1】:

问题是当您将文件发送到/home/jenkins/test_deploy jenkins 时,使用的是来自 jenkins 主页的相对路径。因为詹金斯家是/home/jenkins/,最终peth变成了/home/jenkins/home/jenkins/test_deploy/*

试试~/jenkins/home/jenkins/test_deploy/*test_deploy/*

【讨论】: