一、简介:
Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目(持续部署),无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。
对于初学者尤其是学生党来说,jenkins就是集成多种插件的可扩展自动化部署引擎。
二、目的:
Jenkis的思想是自动化部署:当我们向版本库提交最新的代码后,服务器就会自动从Git / svn上拉取最新的包,再重新部署,用户测试看到的就是最新的。在这里,开发人员只需要把代码提交git/svn服务器,tomcat上运行的就是最新版本,无需运维人员再部署,提高工作效率。
三、安装:
前言:自动化部署服务器必须安装docker、项目所对应版本的jdk,本次以 jdk1.8、maven3.6.3、jenkins2.414.2为例
安装 jdk1.8
yum install -y java-1.8.0-openjdk.x86_64
查看docker匹配的的jenkins版本
docker search jenkins
拉取2.414.2版本
docker pull jenkins/jenkins:2.414.2
创建docker容器配置相关环境
docker run -d root \
-p 8080:8080 -p 50000:50000 \
-v /var/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--name jenkins jenkins/jenkins:2.414.2
然后启动 jenkins
docker start jenkins
查看启动情况,出现如下界面代表jenkins安装配置成功
随后通过 地址+端口在浏览器进行访问,如(123.60.217.149:8080/login?from=%2F )
看到如上的页面就证明我们已经安装并且成功启动了jenkins,然后回到服务器端输入如下命令
docker logs c1e4dce0e75b ( 此处为jenkins对应的容器id )
在日志信息中我们会看到jenkins密码,复制并粘贴到网页上管理员密码处
点击继续后,我们选择 按照推荐安装插件。然后继续等待。
在安装完成后,我们进入jenkins主界面
四、新建任务
选择新建任务后,在上面输入任务名称,下面选择构建自由风格
五、选择源码管理
这里我们选择使用git进行代码的管理
大家一定记得在这里添加自己的git账户和密码 ,选择自己的分支
六、配置maven
注意:maven一定要放到Jenkins的数据挂载目录内,这样容器才能读到。
在这里maven_home选择服务器maven地址并且配置
随后开始构建,并且查看控制台输出信息
七、配置shell脚本
如果到了这一步并且都成功了的小伙伴,那么恭喜你们,你们离真正的自动化部署仅一步之遥啦,最后呢我们需要编写一个shell脚本,这样我们就完成了整个自动化部署!
在项目配置中我们添加shell脚本
shell脚本文件内容需要大家根据自己项目的实际情况去进行相对应的修改
cp /var/jenkins_home/workspace/jc-club-subject/jc-club-subject/jc-club-starter/target/jc-club-starter.jar /var/jenkins_home/jar/
#!/bin/bash
APP_NAME=jc-club-starter.jar
LOG_NAME=jc-club-starter.log
pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`
function is_exist(){
pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`
if [ -z ${pid} ]; then
String="notExist"
echo $String
else
String="exist"
echo $String
fi
}
str=$(is_exist)
if [ ${str} = "exist" ]; then
echo " 检测到已经启动的程序,pid 是 ${pid} "
kill -9 $pid
else
echo " 程序没有启动了 "
echo "${APP_NAME} is not running"
fi
str=$(is_exist)
if [ ${str} = "exist" ]; then
echo "${APP_NAME} 已经启动了. pid=${pid} ."
else
source /etc/profile
BUILD_ID=dontKillMe
nohup java -Xms300m -Xmx300m -jar /var/jenkins_home/jar/$APP_NAME >$LOG_NAME 2>&1 &
echo "程序已重新启动..."
fi