部署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」 進入到管理頁面:
而後會進入到管理頁面:
在這個頁面咱們能夠對發佈的web項目進行管理,並且Jenkins也須要經過這個管理頁面的接口來發布咱們的Java項目,因此才須要配置這個管理頁面的用戶及白名單ip。
部署java項目-安裝maven
由於咱們須要經過maven來幫咱們編譯並打包Java項目,因此這一步是安裝好maven,注意這一步是在Jenkins服務器上完成的,官網下載地址:
下載並解壓:
[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文件的路徑:
而後往下拉,找到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相關的東西:
而第2、第三次構建Maven的項目就不會再下載這麼多東西了,如上咱們的測試構建Maven項目就成功了,接下來就能夠遠程發佈war包了。
發佈war包
回到項目的配置,在構建後操做那一欄點擊 「增長構建後操做步驟」 選擇 「Deploy war/ear to a container」 :
Containers選擇Tomcat 8.x,Tomcat URL填寫要把war包發佈到的那臺機器的url:
Credentials這裏須要點擊右側的Add,添加用戶名和密碼:
配置完以後點擊保存便可。
而後就能夠構建任務了,我這裏是構建成功的:
而且也收到了郵件通知:
這時候到目標機器上,看看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:
到此爲止,咱們的Java項目就發佈成功了。