9404803 发表于 2018-9-3 11:33:45

通过Jenkins部署java项目

  笔记内容:通过Jenkins部署java项目
  笔记日期:2018-02-28


[*]26.9 部署java项目-创建私有仓库
[*]26.10 部署java项目-下载zrlog源码
[*]26.11 安装配置tomcat
[*]26.12 部署java项目-安装maven
[*]26.13 安装插件
[*]26.14 构建job
[*]26.15 发布war包
部署java项目-创建私有仓库
  Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven。
  本次实验,我们采用git私有仓库的形式,涉及到配置密钥,以zrlog来作为本次实验需要部署的java项目。
  实验环境:


[*]192.168.77.128 作为项目的线上服务器,具有JDK1.8+Tomcat8.5环境
[*]192.168.77.130 Jenkins服务器
  准备工作:


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

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

  push成功则代表没问题。

部署java项目-下载zrlog源码
  下载zrlog的源码,并解压:
  

# cd ../  
# wget https://codeload.github.com/94fzb/zrlog/zip/master
  
# du -sh master
  
2.1M    master
  
# unzip master
  

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

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

配置tomcat
  在线上服务器上需要安装好jdk + tomcat,其中jdk最好不要使用openjdk,使用openjdk容易出问题,我这里使用的jdk版本为1.8,tomcat版本则为8.23。
  准备好JDK+Tomcat环境并且Tomcat能够正常服务后,还需要配置Tomcat的用户文件:
  

# vim /usr/local/tomcat/conf/tomcat-users.xml# 在文件末尾加入以下内容  # role配置角色
  
  
  
  
  
  
  
  # user配置用户及用户的角色
  
# 注意以上内容是写在tomcat-users标签内的
  

  接着配置Tomcat的Context文件,只需要配置白名单ip即可,不然默认只允许本地ip访问:
  

# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml  


    allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.77.*" /># 这里可以根据你自己的机器ip进行配置
  
  

  

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

# sh /usr/local/tomcat/bin/shutdown.sh  
# sh /usr/local/tomcat/bin/startup.sh
  

  打开浏览器进入到Tomcat的web页面,然后点击 “manager webapp” 进入到管理页面:


  然后会进入到管理页面:

  在这个页面我们可以对发布的web项目进行管理,而且Jenkins也需要通过这个管理页面的接口来发布我们的Java项目,所以才需要配置这个管理页面的用户及白名单ip。

部署java项目-安装maven
  因为我们需要通过maven来帮我们编译并打包Java项目,所以这一步是安装好maven,注意这一步是在Jenkins服务器上完成的,官网下载地址:

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

  下载并解压:
  

# cd /usr/local/  
# wgethttp://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
  
# tar -zxvf apache-maven-3.5.2-bin.tar.gz
  
# rm -rf apache-maven-3.5.2-bin.tar.gz
  
# ls apache-maven-3.5.2/
  
binbootconflibLICENSENOTICEREADME.txt
  
# 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"
  
#
  

  安装完成后,到Jenkins的web页面上进行配置,jenkins页面 -> 系统管理 -> 全局工具配置:
  先配置maven的setting.xml文件的路径:

  然后往下拉,找到Maven那一栏,配置maven的安装路径:


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

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


[*]  安装Maven Integration:


[*]安装Deploy to container:

  安装完成:

  Maven Integration是用于构建Maven项目的,而Deploy to container则是用于发布远程war包的。
  如果没有安装Maven Integration的话,构建任务时是没有Maven项目的选项的:

  重启Jenkins服务:

  systemctl restart jenkins

  然后点击 “新建任务” ,这时会发现多了一个Maven项目的选项,这就证明maven插件安装成功了:


构建job
  点击 “新建任务” ,创建一个Maven项目:

  填写项目信息:

  源码管理,配置远程的私有git仓库:



  构建触发器、构建环境、Pre Steps这几项保持默认节即可,
  然后配置Build那一栏,Build的过程是在编译源码并打包:

  接下来的Post Steps以及构建设置这两项也保持默认。
  构建后操作需要配置,这一步我这里目前只是配置一下邮件通知,目的是先进行测试能否成功构建Maven项目,测试成功后一会再配置发布war包:


  配置完保存之后,就可以点击立即构建来构建这个maven项目了,我这里是构建成功的:

  而且邮箱也成功收到了邮件通知:

  这时进入控制台输出页面,由于是第一次构建Maven的项目,所以会看到下载了很多Maven相关的东西:

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

发布war包
  回到项目的配置,在构建后操作那一栏点击 “增加构建后操作步骤” 选择 “Deploy war/ear to a container” :

  Containers选择Tomcat 8.x,Tomcat URL填写要把war包发布到的那台机器的url:


  Credentials这里需要点击右侧的Add,添加用户名和密码:


  配置完之后点击保存即可。
  然后就可以构建任务了,我这里是构建成功的:

  并且也收到了邮件通知:

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

# ls /usr/local/tomcat/webapps/  
docsexampleshost-managermanagerROOTzrlog-1.9.0zrlog-1.9.0.war
  
#
  

  如上,可以看到war已成功发布到tomcat上了。
  浏览器上也成功登录了zrlog:

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


页: [1]
查看完整版本: 通过Jenkins部署java项目