折腾了好久,终于实现了用 Jenkins 部署 Spring Boot的应用,这里将具体过程记录一下,供大家参考。
准备环境
CentOS 7.6
JDK 1.8
Maven 3.6.0
git 1.8.3.1
如上环境只是我本地的,不一定要完全一样
安装 Jenkins
全局工具配置
打开系统管理
-> 全局工具配置
分别配置JDK
,Git
,Maven
的路径,根据你的实际路径来填写
配置完成后点击保存
。
安装插件
有很多插件都是选择的默认的安装的,所以目前只需要再手动安装 Maven Integration
和 Publish Over SSH
这两个插件。
打开 系统管理
-> 插件管理
,
选择 可选插件
,
勾选中 Maven Integration
和 Publish Over SSH
,
点击 直接安装
在安装界面勾选上安装完成后重启 Jenkins
添加 SSH Server
SSH Server
是用来连接部署服务器
的,用于在项目构建完成后将你的应用推送到服务器中并执行相应的脚本。
打开 系统管理
-> 系统配置
,找到 Publish Over SSH
部分,选择新增
点击 高级
展开配置
最终配置如下
配置完成后可点击 Test Configuration
测试连接,出现 succes
连接成功
添加凭据
凭据
是用来从 Git 仓库拉取代码的,打开 凭据
-> 系统
-> 全局凭据
-> 添加凭据
我是用 SSH 密钥来做凭证的,所以我的配置如下
部署服务器的准备工作
在部署服务器
上,需要一些准备工作:
1、创建文件夹 /home/ec2-user/jenkins-in
, 其中ec2-user
是前面在配置 SSH Server
时指定的用户名
2、创建脚本 /home/ec2-user/jenkins-in/deploy.sh
,将如下内容复制进去
1 | export JAVA_HOME PATH CLASSPATH |
这段脚本的作用就是Kill旧项目、备份老项目、拷贝新项目、执行新项目,别忘了给可执行权限
1 | chmod +x deploy.sh |
新建 Maven 任务
创建
新建任务
-> 构建一个maven项目
源码管理
在源码管理中,选择Git
,填写仓库地址
,选择之前添加的凭证
构建环境
勾选 Add timestamps to the Console Output
,代码构建的过程中会将日志打印出来
Build
在Build中,填写 Root POM
和 Goals and options
,也就是你构建项目的命令
Post Steps
选择Run only if build succeeds
,添加 Post 步骤,选择 Send files or execute commands over SSH
name
选择前面添加的 SSH Server
,Source files
要推送的文件,Remove prefix
文件路径中要去掉的前缀,Remote directory
要推送到目标服务器上的哪个目录下,Exec command
目标服务器上要执行的脚本
上面填写的 jenkins-in
以及jenkins-in/deploy.sh
都是在 部署服务器的准备工作
步骤准备好的
构建任务
点击 立即构建
可以开始构建任务,控制台可以看到log输出,如果构建失败,在log中会输出原因