本文将从以下几个方面来学习Jenkins。内容简化,参考即可。
1、Jenkins介绍
Jenkins是一个开源CI&CD的平台。支持构建、部署、自动化。
Jenkins首页几个常打交道的配置:
2、Jenkins安装
1.在官网 Jenkins下载 下载安装包 jenkins.war。我这里使用的是jenkins-2.321版本的。
2.启动jenkins服务, java -jar jenkins.war --httpPort=8080
3.启动成功后,即可访问jenkins: http://localhost:8080
4.如果是第一次使用,则还需解锁jenkins。
jenkins登录后的界面如下:
3、Jenkins基本配置
在构建自动化部署之前,我还需要完成一些配置。
1、安装插件
(1)Publish over SSH ,用于ssh远程。
(2)Git plugin,版本管理 Git 的插件。如果用svn,可以安装 Subversion Plugin
(3)Maven Integration,Maven 项目构建的插件
从这个位置进去,如下:
检索安装插件,如下:
2、Configure System (系统设置)
我们找到最后面的,配置远程服务器需要的配置。
3、Global Tool Configuration (全局工具配置 )
配置好maven、JDK、Git,如下:
这里配置Git的之前,还需要安装Git客户端才行。
4、Jenkins自动部署项目
从这里新建一个任务:
1. General 配置
2. 源码管理
3、构建触发器
暂不配置
4、构建环境
暂不配置
5、Pre Steps
6、Build
7、构建设置
暂不配置
8、构建后操作
这里我们构建,将jar包远程传送到服务器,然后运行启动。
服务器的脚本:
服务启动脚本参考:
#!/bin/bash
export JAVA_HOME=/app/jdk1.8.0_191
echo ${JAVA_HOME}
echo 'start websocket-0.0.1-SNAPSHOT.jar'
chmod 777 /app/tomcat/websocket-0.0.1-SNAPSHOT.jar
cd /app/tomcat
nohup ${JAVA_HOME}/bin/java -jar websocket-0.0.1-SNAPSHOT.jar &
echo 'start success...'
服务关闭脚本参考:
#!/bin/bash
echo "Stop Procedure : websocket-0.0.1-SNAPSHOT.jar"
pid=`ps -ef |grep java|grep websocket-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi
经过以上的一些操作后,我们终于快要看到成果了。
9、一键部署我们的项目到服务器
这里可以看到控制台的输出信息。编译项目,发送服务器,执行远程shell脚本。到此一键部署的方式就实现了。当然我们还可以 构建触发器 ,定时去更新 或者 ... 待续...
问题
(1)解决Jenkins构建完成之后服务自动关闭的问题?
jenkins默认会在构建完成后杀掉构建过程中又jenkins中shell命令触发的衍生进程。
在shell命令中加上BUILD_ID=dontKillMe可以阻止进程被杀掉。
BUILD_ID=dontKillMe
5、相关资料
1、jenkins官网文档:https://www.jenkins.io/zh/doc/book/installing/