经过Jenkins部署java项目

部署java项目-建立私有仓库

Jenkins大多数状况下都是用来部署Java项目,Java项目有一个特色是须要编译和打包的,通常状况下编译和打包都是用maven完成,因此系统环境中须要安装maven。java

本次实验,咱们采用git私有仓库的形式,涉及到配置密钥,以zrlog来做为本次实验须要部署的java项目。linux

实验环境:git

  • 192.168.77.128 做为项目的线上服务器,具备JDK1.8+Tomcat8.5环境
  • 192.168.77.130 Jenkins服务器

准备工做:github

  • 自行在免费的代码托管平台申请一个私有的git仓库,我这里使用的是国内的一个免费托管平台:码云
  • 生成密钥对,把公钥放到git服务端,也就是配置仓库的密钥认证,常规操做就不演示了

克隆建立好的私有仓库:web

[root@server ~]# cd /home/ [root@server /home]# git clone git@gitee.com:Zero-One/Test-Zrlog.git [root@server /home]# cd Test-Zrlog/ [root@server /home/Test-Zrlog]# ls README.md [root@server /home/Test-Zrlog]# vim README.md // 随便更改一下内容 [root@server /home/Test-Zrlog]# git add . [root@server /home/Test-Zrlog]# git commit -m "first" [root@server /home/Test-Zrlog]# git push

push成功则表明没问题。apache


部署java项目-下载zrlog源码

下载zrlog的源码,并解压:vim

[root@server /home/Test-Zrlog]# cd ../ [root@server /home]# wget https://codeload.github.com/94fzb/zrlog/zip/master [root@server /home]# du -sh master 2.1M master [root@server /home]# unzip master

而后把解压后的文件都移到git仓库里,并提交到远程仓库上:浏览器

[root@server /home]# mv zrlog-master/* Test-Zrlog/ mv: overwrite ‘Test-Zrlog/README.md’? y [root@server /home]# cd Test-Zrlog/ [root@server /home/Test-Zrlog]# git add . [root@server /home/Test-Zrlog]# git commit -m "zrlog source" [root@server /home/Test-Zrlog]# git push

配置tomcat

在线上服务器上须要安装好jdk + tomcat,其中jdk最好不要使用openjdk,使用openjdk容易出问题,我这里使用的jdk版本为1.8,tomcat版本则为8.23。tomcat

准备好JDK+Tomcat环境而且Tomcat可以正常服务后,还须要配置Tomcat的用户文件:bash

[root@client ~]# vim /usr/local/tomcat/conf/tomcat-users.xml # 在文件末尾加入如下内容 <role rolename="admin"/> # role配置角色 <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user name="admin" password="your_password" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" /> # user配置用户及用户的角色 </tomcat-users> # 注意以上内容是写在tomcat-users标签内的

接着配置Tomcat的Context文件,只须要配置白名单ip便可,否则默认只容许本地ip访问:

[root@client ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml <Context antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.77.*" /> # 这里能够根据你本身的机器ip进行配置 <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Context>

完成以上编辑后,重启tomcat:

[root@client ~]# sh /usr/local/tomcat/bin/shutdown.sh [root@client ~]# sh /usr/local/tomcat/bin/startup.sh

打开浏览器进入到Tomcat的web页面,而后点击 “manager webapp” 进入到管理页面:
经过Jenkins部署java项目
经过Jenkins部署java项目

而后会进入到管理页面:
经过Jenkins部署java项目

在这个页面咱们能够对发布的web项目进行管理,并且Jenkins也须要经过这个管理页面的接口来发布咱们的Java项目,因此才须要配置这个管理页面的用户及白名单ip。


部署java项目-安装maven

由于咱们须要经过maven来帮咱们编译并打包Java项目,因此这一步是安装好maven,注意这一步是在Jenkins服务器上完成的,官网下载地址:

https://maven.apache.org/download.cgi

下载并解压:

[root@client ~]# cd /usr/local/ [root@client /usr/local]# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz [root@client /usr/local]# tar -zxvf apache-maven-3.5.2-bin.tar.gz [root@client /usr/local]# rm -rf apache-maven-3.5.2-bin.tar.gz [root@client /usr/local]# ls apache-maven-3.5.2/ bin boot conf lib LICENSE NOTICE README.txt [root@client /usr/local]# apache-maven-3.5.2/bin/mvn --version Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00) Maven home: /usr/local/apache-maven-3.5.2 Java version: 1.8.0_111, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix" [root@client /usr/local]# 

安装完成后,到Jenkins的web页面上进行配置,jenkins页面 -> 系统管理 -> 全局工具配置:

先配置maven的setting.xml文件的路径:
经过Jenkins部署java项目

而后往下拉,找到Maven那一栏,配置maven的安装路径:
经过Jenkins部署java项目
经过Jenkins部署java项目

点击 “Saven” 以后,咱们的maven也就配置完了


安装插件

系统管理 -> 管理插件,检查是否已经安装 Maven Integration和 Deploy to container,若没有安装则须要安装这两个插件:

  • 安装Maven Integration:
    经过Jenkins部署java项目

  • 安装Deploy to container:
    经过Jenkins部署java项目

安装完成:
经过Jenkins部署java项目

Maven Integration是用于构建Maven项目的,而Deploy to container则是用于发布远程war包的。

若是没有安装Maven Integration的话,构建任务时是没有Maven项目的选项的:
经过Jenkins部署java项目

重启Jenkins服务:

systemctl restart jenkins

而后点击 “新建任务” ,这时会发现多了一个Maven项目的选项,这就证实maven插件安装成功了:
经过Jenkins部署java项目


构建job

点击 “新建任务” ,建立一个Maven项目:
经过Jenkins部署java项目

填写项目信息:
经过Jenkins部署java项目

源码管理,配置远程的私有git仓库:
经过Jenkins部署java项目
经过Jenkins部署java项目
经过Jenkins部署java项目

构建触发器、构建环境、Pre Steps这几项保持默认节便可,

而后配置Build那一栏,Build的过程是在编译源码并打包:
经过Jenkins部署java项目

接下来的Post Steps以及构建设置这两项也保持默认。

构建后操做须要配置,这一步我这里目前只是配置一下邮件通知,目的是先进行测试可否成功构建Maven项目,测试成功后一会再配置发布war包:
经过Jenkins部署java项目
经过Jenkins部署java项目

配置完保存以后,就能够点击当即构建来构建这个maven项目了,我这里是构建成功的:
经过Jenkins部署java项目

并且邮箱也成功收到了邮件通知:
经过Jenkins部署java项目

这时进入控制台输出页面,因为是第一次构建Maven的项目,因此会看到下载了不少Maven相关的东西:
经过Jenkins部署java项目

而第2、第三次构建Maven的项目就不会再下载这么多东西了,如上咱们的测试构建Maven项目就成功了,接下来就能够远程发布war包了。


发布war包

回到项目的配置,在构建后操做那一栏点击 “增长构建后操做步骤” 选择 “Deploy war/ear to a container” :
经过Jenkins部署java项目

Containers选择Tomcat 8.x,Tomcat URL填写要把war包发布到的那台机器的url:
经过Jenkins部署java项目
经过Jenkins部署java项目

Credentials这里须要点击右侧的Add,添加用户名和密码:
经过Jenkins部署java项目
经过Jenkins部署java项目

配置完以后点击保存便可。

而后就能够构建任务了,我这里是构建成功的:
经过Jenkins部署java项目

而且也收到了邮件通知:
经过Jenkins部署java项目

这时候到目标机器上,看看war包是否已发布到tomcat上了:

[root@client ~]# ls /usr/local/tomcat/webapps/ docs examples host-manager manager ROOT zrlog-1.9.0 zrlog-1.9.0.war [root@client ~]# 

如上,能够看到war已成功发布到tomcat上了。

浏览器上也成功登陆了zrlog:
经过Jenkins部署java项目

到此为止,咱们的Java项目就发布成功了。

相关文章
相关标签/搜索