通过Jenkins部署java项目
部署java项目-创建私有仓库
Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven。
本次实验,我们采用git私有仓库的形式,涉及到配置密钥,以zrlog来作为本次实验需要部署的java项目。
实验环境:
- 192.168.77.128 作为项目的线上服务器,具有JDK1.8+Tomcat8.5环境
- 192.168.77.130 Jenkins服务器
准备工作:
- 自行在免费的代码托管平台申请一个私有的git仓库,我这里使用的是国内的一个免费托管平台:码云
- 生成密钥对,把公钥放到git服务端,也就是配置仓库的密钥认证,常规操作就不演示了
克隆创建好的私有仓库:
[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成功则代表没问题。
部署java项目-下载zrlog源码
下载zrlog的源码,并解压:
[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。
准备好JDK+Tomcat环境并且Tomcat能够正常服务后,还需要配置Tomcat的用户文件:
[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” 进入到管理页面:
然后会进入到管理页面:
在这个页面我们可以对发布的web项目进行管理,而且Jenkins也需要通过这个管理页面的接口来发布我们的Java项目,所以才需要配置这个管理页面的用户及白名单ip。
部署java项目-安装maven
因为我们需要通过maven来帮我们编译并打包Java项目,所以这一步是安装好maven,注意这一步是在Jenkins服务器上完成的,官网下载地址: