一、依赖环境
- SSH,远程机开启SSH服务,允许Jenkins所在机器通过SSH服务登录到远程机执行脚本;可以设置SSH使用用户名/密码或通过key登录,SSH配置请查看我之前的jenkins配置文章。
- JDK,本文部署的是JAVA应用,远程机上要用jdk环境,如非Java应用请忽略。
- Tomcat或其他web容器,本文是以Tomcat为例,将应用部署到Tomcat中运行,远程机上安装Tomcat是必须的,如非Java应用请忽略,如用其他web容器请查找容器的安装资料。
二、前期准备
1、安装 Publish Over SSH 插件
由于后面我们还需要把打好的包分发到远程的服务器.所以这里还要再安装一个Publish Over SSH
插件.这样的话,我们就可以在jenkins配置中直接使用远程拷贝了,把包直接拷贝到远程服务器。我这里是已经安装过了。
2、配置 Publish over SSH
我们添加一台服务器,后面打好的包将推送到这台服务器的 tomcat 上面。
- 系统管理--->系统设置--->Publish over SSH。
- 添加对应服务器的账号信息。
SSH Servers:远程服务器相关配置,也就是我们要把程序发布到的那一台机器的相关配置。
Name:起一个名字,方便后面配置发布的时候,选择服务器。
Hostname:远程服务器的IP地址,如果写远程的主机名的话,要在jenkins的hosts文件中加映射。
Username:服务器账号用户名。
Remote Directory:要把文件发布到远程机器的哪一个目录。
-
我们针对单一的服务器进行配置,只需要填写好特定服务器的账号密码即可,我们也可以配置统一的无密码通信,即使用公钥通信。
- 测试成功,点击保存即可,我们在后面构建项目的时候可以直接选择被构建的服务器。
3、安装 git 插件
因为我们的 jenkins 需要从 gitlab 获取代码,需要安装 git 插件。
二、创建 java 任务
1、创建一个 maven 任务
- 任务名字可以随便填写。
2、General
描述:我们可以随便填写,大概介绍一下项目的情况,以及发送到哪个机器。
丢弃旧的构建:为了不对服务器存储造成太大的压力,我们需要清理之前构建的一些项目,这里大家可以按照自己的情况进行设定。
3、源码管理
这里我使用的是自己的 gitlab 代码仓库,没有设定权限,在 github 上面的地址为:https://github.com/wangzan18/game-of-life 。
Repository URL:填写我们git项目的地址,gitlab上面的每个项目都有相应的地址。
Credentials:我这里演示的是公开的项目,如果是私有项目,需要添加认证,我会在其他的博文进行讲解演示。
Branches Specifer:因为我的项目直接在master分支上面进行更新的,所以这里填写了*/master
,如果使用的其他分支可以相应的修改即可。
4、构建触发器
构建触发器我这里没有用到,意思就是说,当触发了什么条件等时候,我们后面会和 gitlab 进行自动发布。
5、构建环境
哈哈,这里我没有用到哦。
6、Pre Steps
也就这几个选项,也就是构建前需要做什么。反正我是没有用到。
7、Build
配置相对比较简单,按照如上填写即可。
8、Post Steps
暂时不写什么,还没有用得到。
9、构建设置
可以填写邮件通知,告诉我构建的结果。
10、构建后操作
这里是比较重要的一块,这里我们选择的是:Send build artifacts over SSH。
SSH Server Name:这里选择之前我们配置好的服务器,并且已经测试了SSH连接,服务器也已经安装了Tomcat。
Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔),为了简要也可以写**/*.war
。
Remove prefix:移除前缀(只能指定Source files中的目录)。
Remote directory:远程目录(这里也是相对目录,目录根据我们配ssh的时候填写的Remote Directory 路径,我写的是/root,后面会上图,在这个路径的基础上的相对路径。
Exec command:把你要执行的命令写在里面,也就是我们平时手动操作的一些过程。
一切配置的差不多之后,我们保存,进行构建测试。
三、构建测试
1、开始构建
我们回到任务栏,点击任务最后面的构建按钮。
2、查看构建
- 我们点击我们构建的 #2 号任务。
我们点击控制台输出,查看一下构建的过程,一些失败的过程我们也可以从中去进行查看。
3、构建成功
我们可以看到BUILD SUCCESS,说明我们编译打包没有了什么问题。
再可以看到下面的一些命令的执行,也都是成功的,经过我们测试,项目也确实发布了,没有什么问题,至此大功告成,已经我们的更改,都只需点击一下按钮就可以发布测试了,为我们节省了很多时间。
本版本只是简要介绍了一下项目的发布,中间可能也会有很多设定不合理的地方,后期会不断的进行更新。
参考文档:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin