【发布时间】: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作为远程目录,那不是绝对路径吗?