在 Jenkins 中进行构建时,可能需要首先 SSH 登录到一个远程服务器以执行必要的脚本,然后再执行构建。这时,需要安装 SSH Plugin,并进行如下配置。

安装 ssh 插件

在Jenkins界面,系统管理->管理插件->安装SSH Plugin

[转 ] 使用 Jenkins 执行远程脚本 - 图1

因为已经是安装过了, 所以在已安装界面

说明,SSH Plugin的目的就是支持SSH到远程服务器,然后执行Shell命令。

配置 ssh 远程主机

在Jenkins界面,系统管理->Configure(配置)->SSH remote hosts

配置要SSH远程连接的服务器信息,示例如下:

Hostname: SSH服务器的地址
Port: 22
User Name: 登录用户名
Password/Passphrase: 登录密码

[转 ] 使用 Jenkins 执行远程脚本 - 图2

注意, 这里的 serverAliveInterval 和 timeout 一定要设置成0, 否则可能在执行脚本的时候会出现
[SSH] Exception:session is down 这个错误, 这个错误折腾了半天, 在发现是这两个值之前有异常
也可能有其他方案.

配置构建

[转 ] 使用 Jenkins 执行远程脚本 - 图3

这里需要选择执行的主机还有需要执行的命令即可

执行构建

脚本执行过程以及结果

  1. Started by user admin
  2. Running as SYSTEM
  3. Building in workspace /var/lib/jenkins/workspace/Hw-ReactWeb
  4. [SSH] script:
  5. sh /home/xxx/scripts/db-a/w.xxx.sh
  6. [SSH] executing...
  7. Already up-to-date.
  8. yarn install v1.22.4
  9. [1/4] Resolving packages...
  10. success Already up-to-date.
  11. Done in 1.29s.
  12. yarn run v1.22.4
  13. ...
  14. File sizes after gzip:
  15. 895.16 KB build/static/js/2.b71cbd8a.chunk.js
  16. 243.26 KB build/static/js/main.ba3ea8bd.chunk.js
  17. 40.07 KB build/static/css/main.d558d632.chunk.css
  18. 38.66 KB build/static/css/2.172c5724.chunk.css
  19. 777 B build/static/js/runtime-main.ae6120a2.js
  20. The project was built assuming it is hosted at /.
  21. ...
  22. [SSH] completed
  23. [SSH] exit-status: 0
  24. Finished: SUCCESS