有时候因为一些问题频繁的打包并上传到服务器,然后启动服务感觉很浪费时间,所以就弄了一下jenkins,解决一下这种问题。
使用Jenkins完成自动化部署,主要分为一下几步:
- 安装jdk
#进入usr目录,创建java文件夹 cd /usr mkdir java cd java #使用yum命令安装wget yum -y install wget #下载jdk压缩包 wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz" #解压并修改文件名 tar -xzvf jdk-8u141-linux-x64.tar.gz mv jdk-8u141-linux-x64 jdk-8u141 #配置jdk环境变量 vim /etc/profile #输入i,进入编辑模式,加入以下配置,记得去掉前面的#号,然后保存 # JAVA_HOME=/usr/java/jdk-8u141 # JRE_HOME=$JAVA_HOME/jre # CLASSPATH=$JAVA_HOME/lib # PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin # export JAVA_HOME JRE_HOME CLASSPATH PATH #执行命令,使配置生效 source /etc/profile #查看jdk环境变量是否配置成功 java -version #如果出现jdk版本相关信息,则表示配置成功
- 安装tomcat
#使用war包方式安装Jenkins服务,就是将Jenkins的war发布到tomcat中 #进入根目录,创建tomcat文件夹 cd /usr mkdir tomcat #进入tomcat文件夹 cd tomcat #使用wget命令进行下载tomcat的tar.gz压缩包,我使用的是tomcat8如需使用其他版本去官网下载即可 wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.53/bin/apache-tomcat-8.5.53.tar.gz #解压并修改文件名 tar -xzvf apache-tomcat-8.5.53.tar.gz mv apache-tomcat-8.5.53 tomcat8 #如果不需要修改端口,就可以直接启动tomcat8 sh /usr/tomcat/tomcat8/bin/startup.sh #设置tomcat开机自启,如果没有安装vim命令,可以使用vi vim /etc/rc.local #在文件最末尾加上,记得去掉#号,然后保存 # sh /usr/tomcat/tomcat8/bin/startup.sh #给rc.local文件添加执行权限 chmod +x rc.local
- 安装Jenkins,Jenkins的安装可以使用war包发布的方式或者rpm包安装(下面描述的是war包方式):
然后打开浏览器输入:http://ip:8080/jenkins,出现下图(记得将ip替换成自己的实际ip),表示Jenkins服务启动成功#创建Jenkins的默认生成目录,不创建此目录,当Jenkins启动时默认生成在当前用户的根目录 cd /usr mkdir .jenkins #上传项目所需的jar包到服务器的maven仓库,建议直接上传本地压缩的maven仓库 # 安装解压命令:yum install unzip # 解压命令:unzip apache-maven-3.5.4.zip #服务器安装maven,上传本地jar包仓库也可以 # yum install maven #修改settings.xml文件的本地仓库位置为:<localRepository>/usr/apache-maven-3.5.4/repo</localRepository> vim /usr/apache-maven-3.5.4/conf/settings.xml #配置Jenkins的环境变量以及maven环境变量 vim /etc/profile #在文件最后一行加上下面参数,注意要去掉#号 # export JENKINS_HOME=/usr/.jenkins # export M2_HOME=/usr/apache-maven-3.5.4 # export PATH=$PATH:$M2_HOME/bin #重启文件配置,使其生效 source /etc/profile #关闭tomcat sh /usr/tomcat/tomcat8/bin/shutdown.sh #进入tomcat的webapp所在目录 cd /usr/tomcat/tomcat8/webapp #下载Jenkins的war包 wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war #启动tomcat sh /usr/tomcat/tomcat8/bin/startup.sh #安装一下git(也可以不安装,在jenkins里面自动安装一个也行) yum -y install git #安装完可以使用下面的命令查看是否安装成功(与maven不同的是它前面是2个-) git --version
- 安装实现Jenkins自动部署相关插件
- 解锁Jenkins后会推荐安装插件,默认安装jenkins推荐的即可。
- 创建一个登陆用户,不创建就默认使用admin,密码就是上面文件中的密码,如下图
- 创建完成后直接点下一步...,进入jenkins主界面
- 查看一下是否有安装Git和Maven Integration插件,如果没有先安装一下,安装完需要重启jenkins:http://192.168.1.131:8080/jenkins/restart
- 配置Jenkins全局相关参数
- 创建一个maven工程
- 使用jenkins创建第一个项目
- 进入创建的maven项目并配置相关数据
- 配置自动打包相关参数
- 配置完后应用并保存就可以实现自动打包了
- 上面只是利用jenkins实现自动拉取代码进行打包的功能,但是部署项目还需要自己进入服务器手动进行,现在记录一下目前使用的自动部署实现方式
- 编写sheel脚本
#测试项目启动脚本 #创建目录,-p表示创建多级目录 mkdir /usr/test -p cd /test touch nohup.out touch api.out touch service.out touch restartTest.sh #设置restartTest.sh为可读,写,执行文件并且所有用户都可以执行 chmod 777 restartTest.sh #输入一下启动脚本,千万不要照搬,需要修改成自己的,这只是借鉴 <!-- echo "关闭注册中心" pid=`ps -ef | grep test-eureka| grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then echo "kill -9 的pid:" $pid kill -9 $pid fi echo "Stopping test-service" pid=`ps -ef | grep test-service| grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then echo "kill -9 的pid:" $pid kill -9 $pid fi echo "Stopping test-api" pid=`ps -ef | grep test-api| grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then echo "kill -9 的pid:" $pid kill -9 $pid fi echo "关闭所有进程" echo "开始重启测试项目!" nohup /usr/jdk/jdk1.8.0_141/java -jar /usr/apache-maven-3.5.4/repo/com/yfy/test-eureka/0.0.1-SNAPSHOT/test-eureka-0.0.1-SNAPSHOT.jar >/usr/test/nohup.out 2>&1 & sleep 10 nohup /usr/jdk/jdk1.8.0_141/java -jar /usr/apache-maven-3.5.4/repo/com/test/test-service/0.0.1-SNAPSHOT/test-service-0.0.1-SNAPSHOT.jar >/usr/test/service.out 2>&1 & nohup /usr/jdk/jdk1.8.0_141/java -jar /usr/apache-maven-3.5.4/repo/com/yfy/test-api/0.0.1-SNAPSHOT/test-api-0.0.1-SNAPSHOT.jar >/usr/test/api.out 2>&1 & echo "启动完成!" #最后记得保存 --> #为了体现出jenkins自动执行脚本的效果,我这里就在脚本里写一句输出语句 echo "Hello World!!!"
- 配置项目实现自动化部署
测试并运行
到此使用jenkins完成项目自动打包和发布的配置与测试就到此完成了。