简介
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
1.Jenkins的部署环境
基本环境:
1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。
2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。
3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方式,如:gradle
2.Jenkins安装
1.下载地址:链接或下载地址
PS:在第二个下载地址中,选择表格中war的LTS版本
2.在安装包根路径下,运行命令 java -jar jenkins.war --httpPort=8080,(linux环境、Windows环境都一样),如下图:
上图中,安装过程会显示密码,也可登录http://localhost:8080,在提示路径中查找密码:
3.填写密码,并激活
3.插件安装
这里建议选择,推荐安装的插件,保证基本常用的功能可以使用。
选择后,进入插件安装页面:
然后设置初始用户和密码:
最后进入系统,安装完成。
PS:补充必要的插件安装(Publish Over SSH , Deploy to container Plugin),入下图:
4.Jenkins基本配置
4.1 Configure Global Security (全局安全配置)
4.2 Global Tool Configuration (全局工具配置 )
a.配置maven的全局settings路径
b.配置jdk
c.配置git
d.配置maven的安装路径
4.3 配置必要插件
主要是检查如下这两个插件是否已安装(已安装,不做赘述)
插件1:Publish over SSH
插件2:Deploy to container Plugin
4.4 Configure System (系统设置)
在系统设置这里,我们只需要设置最后面的一项,配置远程服务器地址,
即我们代码最终运行的服务器地址信息,就像我们之前手动部署时使用xshell登录Linux服务器一样,
当然这里是可以配置多台远程Linux服务器的,配置完成后点击保存即可,为后面我们配置自动化部署做准备,配置如下图
5.Jenkins自动化部署(springBoot+maven+gitHub)项目
5.1 Jenkins服务器上创建项目和配置
1.创建一个工程(新建Item)
2.General(基础配置)
仅需填写标准部分,其他可不填写
3.源码管理
上图中点击“添加”按钮添加一组账号和密码
4.构建触发器
如上图:当前项目的回调地址只要执行(在浏览器上访问改地址),该项目就会发起一次构建项目,即拉取代码打包部署操作,在实际中,是由git服务器回调改地址,在后面讲git服务器配置时详细讲解 ,
值得注意的是,如果你是学习测试,使用的是GitHub服务,要确保你的回调地址已经试外网映射过的,即往外网可以访问
5.构建环境(无需配置)
6.构建
7.构建后操作
构建后操作的意思是,jar打包好后,要将jar发送到哪里去,发送后去和启动等
这里需要提前在需要部署的服务器上配置好路径,写好启动和停止项目的脚本,并设置为可以执行的脚本,其实就是我们平时在Linux上手动部署项目操作的脚本
案例中给出的business.sh脚本如下:
#!/bin/bash
project_dir=/data/wwwroot/warpackage
server_dir=/data/root/app
jar_file=business-0.0.1-SNAPSHOT.jar
# 切换到部署路径
echo "切换到部署路径: "$server_dir
su root
cd $server_dir
# 关闭服务
echo "关闭服务"
pid=`ps -ef | grep $jar_file | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ];then
echo "kill -9 的 pid: "$pid
kill -9 $pid
fi
# 更新
echo "更新jar文件"
mv -f $project_dir/$jar_file .
# 启动
echo "启动服务"
source /etc/profile # 防止jenkins杀掉进程
nohup java -jar $jar_file >/dev/null 2>&1 &
# 删除更新文件
echo "删除更新文件"
rm -f $project_dir/$jar_file
tail -f /home/wwwlogs/app/spring.log
到此,Jenkinds服务器配置完成,接下来我还有要配置Linux服务器和Git服务器。
6.Linux服务器配置
在Liux服务上,上传上文中的脚本business.sh ),用于启动和停止.
7.最后运行项目
参考文献:文献地址
PS:文献相关资料
1.案例中的源码地址:https://github.com/bangbangw/demo01.git
2.官方文档:https://jenkins.io/zh/doc/
补充:
对于Publish over SSH的配置:
最后,附上一些Jenkins执行报错问题汇总:
链接地址:链接