Jenkins部署java項目(java項目爲主)java
1、部署java項目-建立私有倉庫nginx
java的項目是須要編譯和打包的
編譯和打包用maven完成,因此需安裝mavengit
001機器上操做:github
本次實驗,採用git私有倉庫的形式,涉及到配置密鑰
準備工做:web
本身申請一個私有git倉庫(coding.net/github.com/g.lishiming.net) 生成密鑰對 把公鑰放到git服務端: cat /root/.ssh/id_rsa.pub 把001機器上的公鑰複製過來
此處使用的github.com的倉庫,建立私有的(Private)項目,而後按照頁面進行操做apache
在本地修改README.md,而後上傳到倉庫,刷新頁面看是否修改爲功。vim
2、部署jiava項目-下載zrlog源碼api
下載zrlog的源碼 https://codeload.github.com/94fzb/zrlog/zip/master 下載的文件爲zip壓縮文件,須要解壓unzip 下載到外面的目錄 mv zrlog-master/* java/ cd java/ git add . git commit -m "add zrlog" 而後用git push到新建的私有倉庫裏,回到頁面刷新
3、安裝tomcattomcat
002機器上操做:服務器
在另一臺機器上安裝jdk + tomcat,其中jdk能夠爲openjdk,版本1.8,tomcat用來運行zrlog
能夠參考 https://my.oschina.net/u/4093217/blog/3054237 安裝
jenkins用到了tomcat管理界面的管理入口,須要配置管理員的用戶
頁面直接輸入ip便可,默認80端口
此處的tomcat端口改爲了80,須要關閉nginx,tomcat端口修改:vim /usr/local/tomcat/conf/server.xml
vim /usr/local/tomcat/conf/tomcat-users.xml
在最後面的</tomcat-users>前插入以下內容
<role rolename="admin"/> <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="tobe_jiang" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" /> 定義管理員用戶爲admin,密碼爲tobe_jiang
重啓tomcat,先關閉在啓動
/usr/local/tomcat/bin/startup.sh //啓動服務 /usr/local/tomcat/bin/shutdown.sh //關閉服務
頁面刷新後,點擊manager webapp,進入後顯示403
須要配置: vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
增長 192.168.183.*,一 「|」分割,容許此ip段訪問
而後重啓tomcat,刷新頁面,點擊manager webapp,就會出現用戶認證的彈窗
輸入剛剛配置的用戶名和密碼進入,頁面中是能夠進行的操做
爲了讓jenkins可以訪問到這個頁面,經過後臺api接口發佈war包,maven能夠把java源碼編譯成war包(.war的包)
經過manager後臺接口傳過來自動發佈,解壓
4、部署java項目-安裝maven
001機器上:
安裝maven,要安裝到jenkins所安裝的機器上
經過maven編譯java源碼並打包
官網下載地址: https://maven.apache.org/download.cgi
cd /usr/local/ wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz tar zxvf apache-maven-3.6.1-bin.tar.gz /usr/local/apache-maven-3.6.1/bin/mvn --version
配置jenkins:
jenkins -> 系統管理(Manage Jenkins) -> 全局工具配置(Global Tool Configuration)->Maven 配置
/usr/local/apache-maven-3.6.1/conf/settings.xml
下拉找到:Maven->新增Maven
不使用自動安裝,手動填寫路徑/usr/local/apache-maven-3.6.1
5、部署java項目-安裝插件
系統管理 -> 管理插件,檢查是否已經安裝 Maven Integration 和 Deploy to container ,若沒有安裝則須要安裝這兩個插件 Maven Integration 建立maven項目時用到的插件 Deploy to container 把war包發佈到遠程tomcat 安裝完插件後,須要重啓jenkins: systemctl restart jenkins 建立新任務: 登陸jenkins,點擊「新建」,任務名稱自定義(個人叫作java) 選擇「構建一個maven項目」 點擊「肯定」
此處出現構建一個maven項目
6、部署java項目-構建job
進入新建立的任務配置,選擇源碼管理:
選擇 「git」, Repository URL填寫git的SSH地址,並配置對應的key,最好事前先在jenkins這臺機器上可以直接遠程git操做私有倉庫
出現此提示說明這個倉庫是私有倉庫,須要配置對應的用戶和key
點擊添加下的jenkins,類型安裝以下選擇,填寫用戶名和私鑰,點擊添加
回到源碼管理頁面選擇git,以前的報錯就沒有了,說明配置正確
構建觸發器、構建環境、Pre Steps保持默認
Build:
「Root POM」爲pom.xml
Goals and options 填寫 clean install -D maven.test.skip=true 編譯以前clean,跳過測試,此處也能夠留空
Post Steps、構建設置保持默認
先發送郵件測試:
點擊「增長構建後操做步驟」選擇「Editable Email Notification」 Project Recipient List,改成$DEFAULT_RECIPIENTS,xxxx@qq.com, 意思是增長額外一個收件人 點擊右下角的「Advanced settings」,定位到「Triggers」,而後點擊下方的「Add Trigger」,選擇always,表示老是發送,能夠增長髮郵件的條件。 最後點左下角的「保存」 以後就能夠點左側的「當即構建」,而後查看對應任務的控制檯輸出(Console Output)
此處在控制檯輸出中報錯,說明jdk配置有問題,默認使用的openjdk
部署java項目-手動安裝jdk:
系統設置->全局設置(Global Tool Configuration)->JDK 點擊新增JDK 取消自動安裝(Install automatically)的勾選,填寫服務器上jdk的安裝目錄,而後應用、保存 安裝目錄: /usr/local/jdk1.8 重啓服務: systemctl restart jenkins
回到Maven project java這個任務繼續點擊Build Now進行構建
完成後會生成war包,併發送郵件
進入Maven project java這個任務配置:
構建後操做:
點擊「增長構建後操做步驟」選擇「Deploy war/ear to a container」 WAR/EAR files 填寫 **/*.war 表示所有的war包 Contex path留空,Containers選擇Tomcat 8.x,根據安裝版本選擇 Tomcat URL填寫要把war包發佈到的那臺機器的url,如http://192.168.183.33,默認80端口,不須要寫端口,如http://172.7.15.114:8080這個是帶端口的 Credentials這裏須要點擊右側的Add,添加訪問tomcat時的用戶名和密碼 而後保存,當即構建,完成後,會在目標機器的tomcat/webapps目錄下看到部署的目錄,訪問時直接使用目標的ip加上生成的目錄名稱便可