通过Publish over SSH部署一个node小项目
- 准备工作
- Jenkins所在的是本地windows,应用程序是远程服务器linux
- 准备了一个node小例子
- 开始实践
- 安装启动Jenkins我就不多讲了
- 打开Jenkins,首先在Manage Jenkins中选择Configure System,找到Publish over SSH的配置。
- 输入服务器名字,HostName,Username,Remote Directory(目标机器的路径,通过此插件推送的文件都会放在此路径下)
- 点击高级-->选中 Use password authentication, or use a different key;然后输入linux用户名的密码
- 点击 Test Configuration可以查看配置是否正确。
- 点击应用,保存
- 新建项目->选择一个自由风格的项目,输入项目名称:test2
- 输入这个项目的描述,主要方便自己了解这个项目是干什么的。
- 源码管理,选择自己的方式。Credentials凭据是通过git拉取代码时所需要的凭据。不要照我的这个配置,根据自己的git实际应用(不管是通过用户名密码或者ssh密钥都可以)
- 构建->Send files or execute commands over SSH或者构建后操作->Send build artifacts over SSH
- 选择服务器
Source files:需要上传的源文件路径。 注意:1.这个路径是相对于jenkins的工作空间的路径(比如你的jenkins工作路径是../.jenkins/workspace/test2/,那么这个Source files只能是相对于这个目录下的);2.在要传输的文件夹后面写两个 **,如果只写一个* ,dist下的文件夹不会传输。
Remove prefix:移除的目录。 Remote directory:文件存放的服务器远程目录(根据你的需求填写吧,比如我这里写的/work,那么在构建时文件就会存放在/usr/work/下,这个/usr/是我上面系统配置里配置的,如果这里的Remote directory在远程服务器上没有就会创建)。
Exec command:把你要执行的命令写在里面(这里我只是测试,因此就随便写了,根据自己的项目编写合适的指令,比如安装依赖文件啊、停止tomcat啊、停止程序啊、移动文件、启动程序等操作)。
- 最后就应用->保存,然后点击立即构建即可
- 上面所写的都是最基本的用法,更多功能,比如定时构建,构建后发送邮件啊,保存构建次数等都可以自己试试。实际应用才会体会到很多坑。
- 构建成功后到linux查看一下是否成功
- 登录linux,切换到存放文件的路径 /usr/work/;输入ls;就可以看到这个文件夹下有webroot文件夹和ser.js。这两个确实是我github上的项目代码。因此证明通过Publish over SSH构建成功啦。
- 常见问题
问题一:如果在系统配置中Publish over SSH连接不成功?
请检查用户名密码是否正确
问题二:如果构建时不能成功拉取git上的代码?
请检查Jenkins配置的 Global Tool Configuration中Git的可执行程序路径是否正确,注意此处的git是Jenkins本地的 地址,不是linux上git的地址哈。这个问题在我另一篇文章(Publish over SSH和slave节点的区别)中提到过。
问题三:文件不能上传至远程服务器?
请检查在Send files or execute commands over SSH中路径是否配置正确(源文件路径)。