认识大管家 Jenkins(二)部署 SpringBoot 项目
================================================================
本文将介绍使用 Jenkins 来部署 SpringBoot 项目的过程,项目保存在 Github 中,能通过 Jenkins 实现提交代码后项目自动拉取代码,自动构建,自动部署。
========================================================================
Jenkins 的配置文件在 /etc/sysconfig/jenkins
注意下面的配置并非必须,看个人需求。
修改 Jenkins 的用户为 root,这样会拥有更大的访问权限,方便使用
修改了端口,默认的 8080 端口,容易出现冲突
========================================================================
介绍下 Jenkins 目录,在构建脚本中用得到
Jenkins 的主目录在 /var/lib/jenkins 中
主要的几个目录:
jobs
创建的任务目录
logs
存放日志
nodes
部署节点
plugins
插件目录
secrets
密钥目录
workspace
项目构建的工作空间
==================================================================
点击 Manage Jenkins > Mange Plugins
在可选插件中搜索插件,安装后重新 Jenkins 就可以了
需要安装 Git 和 Maven Integration plugin 插件
=======================================================================
1) 进入到 Github 的项目仓库中,在 settings 中的 Webhooks 添加 Webhook
2) 配置如下
Payload URL 中前面的 IP 和端口就是 Jenkins 的地址
3)添加凭据
在 Gibhub 的个人配置中,点击开发者配置
添加一个 token
勾选下面的权限
把生成的秘钥 Copy 下来,后面需要
====================================================================
1) 新建一个 Maven 项目
2) 添加项目的描述,可以选择丢弃旧的构建,以节约磁盘空间
3) 源码管理里添加 Git 仓库地址
项目部署时,会从 git 拉取最新的代码
4) 然后 Credentials 里面添加凭据,这里是 Github 的账号、密码
5)构建触发器,第一个是构建快照版本后触发,第二个是提交代码后由 Webhook 触发
6)构建环境里面选择 Use secret text,点击 Secret Text,添加 Secret text 凭据
把 GitHub 生成的秘钥填到这里
7) Pre Steps
添加一行命令,跳过了测试
8) Post Steps
输入 shell 脚本
这个 shell 脚本就是部署的重点了
注意:本文案例中 Jenkins 和部署项目都在同一台服务器上。
首先在服务器的/usr/local 下创建 jenkins/oa 目录作为部署项目的目录
#!/bin/bash
切换到部署目录
cd /usr/local/jenkins/oa
echo "Stopping SpringBoot Application"
查找到之前 jar 文件运行的 pid,干掉之前的进程
pid=ps -ef | grep oa-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'
if [ -n "$pid" ]
then
kill -9 $pid
fi
从 jenkins 的 workspace 中把刚生成的 jar 文件覆盖 oa 目录下原来的 jar 文件
mv /var/lib/jenkins/workspace/DeployOA/target/oa-0.0.1-SNAPSHOT.jar /usr/local/jenkins/oa/oa-0.0.1-SNAPSHOT.jar
评论