简介
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins自动化部署实现原理
Jenkins安装
Jenkins部署环境
- jdk环境,Jenkins是java语言开发的,因需要jdk环境。
- git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。
- maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方式,如:gradle
下载jenkins
安装jenkins
- 点击
.mis 文件,然后一路傻瓜式安装完成。 - 浏览器输入
http://localhost:8080/ ,等待准备完成。 - 等待一会,出现如图。填写初始密码,激活系统。
- 进入插件安装选择,选择 安装推荐的插件 的即可。选择后,进入插件安装页面:
- 设置初始用户和密码
- 保存并完成,进入系统,安装完成。
Jenkins基本配置
① Configure System (系统设置)
- 在系统设置这里,我们只需要设置最后面的一项,配置远程服务器地址,即我们代码最终运行的服务器地址信息,就像我们之前手动部署时使用xshell登录Linux服务器一样,当然这里是可以配置多台远程Linux服务器的,配置完成后点击保存即可,为后面我们配置自动化部署做准备,配置如下图:
② Global Tool Configuration (全局工具配置 )
- 配置maven的全局settings路径
- 配置jdk
- 配置git
- 配置maven的安装路径
③ Manage Plugin(管理插件)
④ Configure Global Security (全局安全配置)
- 配置用户相关的权限
- 基本必要配置就差不多了,后面配置过程中如果需要可以在配置。
Jenkins自动化部署
- 源代码地址:https://github.com/carroll1118/Jenkins_test.git
Jenkins服务器上创建项目和配置
创建一个工程
General(基础配置)
源码管理
- 上图中 ② 点击“添加”按钮添加一组账号和密码
构建触发器
- 如上图:当选触发远程构建时,当前项目的回调地址为:
http://localhost:8080/job/job/Study/build?token=study_token 。只要执行这个地址(在浏览器上访问改地址),该项目就会发起一次构建项目,即拉取代码打包部署操作。在实际中,是由git服务器回调改地址,在后面讲git服务器配置时详细讲解 ,值得注意的是,如果你是学习测试,使用的是GitHub服务,要确保你的回调地址已经试外网映射过的,即往外网可以访问。 - 这儿我选用了 Poll SCM,其它的几个大家可以后面慢慢研究。
构建环境
构建
构建后操作
- 构建后操作的意思是,jar打包好后,要将jar发送到哪里去,发送后去和启动等。这里需要提前在需要部署的服务器上配置好路径,写好启动和停止项目的脚本,并设置为可以执行的脚本,其实就是我们平时在Linux上手动部署项目操作的脚本。
- Jenkinds服务器配置完成,接下来配置Ubuntu服务器。
Ubuntu服务器配置
-
这个服务器是项目最终部署的服务器,可以在阿里云或者其它云,也可以在自己搭建的虚拟机上面。我这儿用的是阿里云。 -
在阿里云上,上传两个脚本,用于启动和停止。先要创建 test 和 jenkins 两个文件夹,用 mkdir 命令。 -
安装JDK,直接输入Java,如果没有JDK的话会给出安装命令,直接安装就好。 -
stop.sh脚本如下:
echo "Stop Procedure : demo-0.0.1-SNAPSHOT.jar"
pid=`ps -ef |grep java|grep demo-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi
-
start.sh脚本如下: #!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
echo ${JAVA_HOME}
echo 'Start the program : demo-0.0.1-SNAPSHOT.jar'
chmod 777 /home/test/jenkins/demo-0.0.1-SNAPSHOT.jar
echo '-------Starting-------'
cd /home/test/jenkins/
nohup ${JAVA_HOME}/bin/java -jar demo-0.0.1-SNAPSHOT.jar &
echo 'start success'
-
到这里所有配置搞定,只需修改代码,提交到git,然后访问程序看是否生效。
测试
-
修改代码,提交到git。 -
代码上传到GitHub之后,就可以在Jenkins中构建。我设置的是10分钟自动构建一次,具体怎么设置你可以自行百度,或者后面我在补充。 -
这儿我们手动构建。 -
构建出错了。 -
点进去,查看具体日志,如下图: -
显示不稳定,其实这个时候,查看部署项目的服务器上。jar已经上传成功,而且也已经启动了。 -
查看项目地址:http://118.31.xxx.69:8080/hello -
接下来我们解决这个不稳定的问题。 -
这个时候,我们再次手动构建项目。
- 问题解决啦。
你知道的越多,你不知道的越多。
|