Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

一、安裝jenkins

1.下載jenkins

這裡我選擇的是war包安裝jenkins,簡單不傷腦,別的博客寫的jenkins版本都很舊,沒用最新的,寫個比較新的配置2.20版。

官網:https://jenkins.io/index.html

WAR包下載地址:之前兩個鏈接已經失效

可在http://mirrors.tuna.tsinghua.edu.cn/jenkins/war選擇要下的jenkins包

或http://archives.jenkins-ci.org/war/2.2/jenkins.war下載

2.安裝jdk環境

最新的JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 沒賬號註冊一個,很快的

前版本的JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

jdk-8u121-linux-x64.tar.gz

這裡選擇Linux64位後綴tar.gz的複製下載鏈接,在服務器上解壓配置環境變量vim /etc/profile寫在最後面

JAVA_HOME=/data/java/jdk的目錄名字 #java目錄是我創建的,把jdk包解壓到裡面,這個寫解壓位置的絕對路徑

CLASSPATH=$JAVA_HOME/lib/

PATH=$JAVA_HOME/bin:$PATH #謹慎,這裡PATH寫錯了會發現命令都得打絕對路徑才能用,悲催

export PATH JAVA_HOME CLASSPATH

配置沒問題完成保存,source /etc/profile讓配置的環境變量生效,這時候可以打命令java -version看看版本,是不是出java version "1.8.0_***",如果是1.6什麼的說明沒生效,看看解壓的路徑。

3.安裝tomcat

下載地址:http://mirrors.hust.edu.cn/apache/tomcat 選擇tomcat進行下載

這個什麼版本都可以,別太舊了,舊的會有漏洞,解壓完成試試能不能用,tomcat目錄裡面bin目錄下,./catalina.sh start啟動,訪問一下,不能訪問基本都是防火牆問題,能出現tom貓界面就可以停了,可以./catalina.sh stop,也可以找到進程pid,kill -9 pid號,進到webapps目錄裡面刪除所有,把之前的jenkins.war拷進來,啟動tomcat。我用的8080端口訪問地址為http://公網地址:8080/jenkins

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

在服務器上面cat /root/.jenkins/secrets/initialAdminPassword會出現讓輸入的密碼,一串數字字母,多等一會到出現下面界面,喝了口水,三分鐘過去了,出現了接下來的界面

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

這個就是說推薦安裝還是自己選,需要的包後面可以裝,我點了第一個,知道用什麼插件點第二個也可以這樣裝的包少一點。安裝的插件都在/root/.jenkins/plugins/下面。

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

開始使用,點擊就會進來

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

如果沒有設置用戶進入,admin用戶登錄還不知道密碼是什麼,是/root/.jenkins/secrets/initialAdminPassword這個裡面的密碼,http://這個地方打ip:8080/jenkins/user/admin/configure修改admin密碼,也可以點系統管理,在裡面找管理用戶,點屏幕中上方的admin進去最下面修改密碼保存。

二、安裝Maven(用來構建項目)

官網地址:http://maven.apache.org/download.cgi

下載地址:apache-maven-3.3.9-bin.tar.gz

配置環境變量:vim /etc/profile 寫到最後,我用的3.3.3的版本

export M2_HOME=/data/apache-maven-3.3.3

export M2=$M2_HOME/bin

export PATH=$M2:$PATH

三、安裝git

下載地址:https://github.com/git/git/releases

下載地址想下載可以下載,然後編譯安裝,git主要是用於jenkins用git命令獲取我們自己搭建的gitlab上面的代碼,yum install git的話,是跟下圖配置一樣,一定要看好git可以用的命令絕對路徑在哪裡,源碼安裝有的的是在/usr/local/git/bin/git,如果寫到/usr/local/git會報錯,你可以試下/usr/local/git/bin/git --version,要有返回值。

四、配置jenkins

jenkins因為配置原因出錯千千萬,一步一報錯,天天有驚喜,下面配置是把坑都填好的。

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

1.添加插件

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

選擇可選插件,過濾搜索,git plugin 插件如果按教程來推薦安裝已經安裝了,裝後面倆就好

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

選擇直接安裝也可以,重啟後安裝也可以,用什麼功能搜一下安裝沒,沒安裝裝上就好,我看了已經安裝的,比自己選安裝的安裝的多很多。。。

很多教程都裝Deploy to Container Plugin,這個可以把包從運行的tomcat的項目http地址上直接發到項目服務器的目錄下,windows上我試了可以,linux這個東西沒用它,都是linux服務器scp過去就好了,windows上面包發過去了不會寫腳本,還是shell腳本簡單。

2.工具配置

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

jdk別名叫啥都可以,路徑寫對,寫你jdk環境變量配置的路徑,寫錯了會出現ERROR: Failed to parse POMs java.io.IOException: Cannot run program***錯誤

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

git的地址要寫的是git這個命令的地址不是目錄的地址,yum裝的自然是/usr/bin/git,之前不是yum裝的裝的寫/usr/local/git報錯找不到git命令,在服務器各種試git都沒問題,看配置以為jenkins看不見呢,裝了好幾個版本的jenkins,找了N久才找到應該寫/usr/local/git/bin/git

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

寫完保存就好,接下來系統配置

3.系統配置

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

這個沒有話看一下上面的插件,沒安裝maven的插件就沒有這個配置

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

這個配置費勁九牛二虎之力,在N次報錯後遍尋錯誤無解時候,在系統提供的英文文檔裡面偶然看到其中一個回答,好長好長看到其中一句,試了試竟然成功了,沃德天!

五、構建項目

點擊新建,出現下圖,名字隨便起,選擇構建一個maven項目

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

連接git,我們是自己搭的gitlab(gitlab安裝中文版),需要在gitlab上搜索ssh或者key,找到一個ssh keys字樣的,把jenkins服務器的公鑰放在上面,另外

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

這個裡面添加一個jenkins服務器root用戶的私鑰,添加不了的話按下面的添加也可以

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

發現gitlab服務器的私鑰也可以,估計是因為gitlab頁面上也放了gitlab的公鑰,看來配對的公私鑰就可以,有興趣的可以試試。

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

選擇這個這裡面可以寫腳本,我下面寫這個相當於腳本里的命令去遠程執行另一個腳本

寫完好久了,今天jenkins做了一個遷移,完善前面的,把後面的再補上

Linux下的Jenkins+Tomcat+Maven+Git+Shell的搭建使用

如圖,後面的功能都是用腳本寫的,jenkins和org互相做了免密登錄,在jenkins上可以直接用/usr/bin/ssh root@org的ip "要執行的命令"

/bin/bash /dat****/org.sh 在org上執行這個腳本

過程:jenkins調用git把Gitlab上的代碼下載到jenkins服務器,maven構建成war包,調用ssh運行shell腳本完成備份,停服務,清webapps,拷war包到tomcat下,起服務,說起來好簡單啊。。。

自己摸索著搭,各種找錯誤,搭了兩星期才搭好,今天遷到別的服務器上幾個小時就搞定了,經過幾個月的使用,jenkins確實是自動化的利器,寫好腳本一鍵搞定

看完基本就熟悉jenkins了,實踐出真知,還是自己做一遍試試。

*** 應評論要求把shell腳本貼出來,不貼是因為寫的low,希望大家指點(rm命令前面加了#小心使用)***

#!/bin/bash
#引入了系統環境變量,這樣系統環境變量裡面沒有export聲明的也可以用
source /etc/profile
sj=`date +%m-%d-%H%M`
#開始先打印個時間到日誌
echo `date` >> /tmp/xxx.log
#備份一下當前的項目,名字用xxx代替

tar -zcPf /data/bf/xxx_ROOT_$sj.tar.gz /data/xxx_tomcat/webapps/ROOT >>/dev/null
echo "tomcat備份成功,開始拷war包" >> /tmp/xxx.log
#在/data/bf裡面處理完再放到tomcat下,感覺停服務的時間短一些
#rm -rf /data/bf/ROOT/*
#下面咋變綠了。。。。
/usr/bin/scp [email protected]:/root/.jenkins/workspace/xxx/target/xxx.war /data/bf/ROOT/ROOT.war
echo "開始解壓,替換配置文件" >> /tmp/xxx.log
unzip /data/bf/ROOT/ROOT.war -d /data/bf/ROOT >>/dev/null
sleep 10
/bin/cp -a /data/bf/app-config.properties /data/bf/ROOT/WEB-INF/classes/app-config.properties
#rm -rf /data/bf/ROOT/ROOT.war
echo "停止服務"
tomcat_pid=`/usr/sbin/lsof -i:8000 | awk -F" " NR==2'{print $2}'`
kill -9 $tomcat_pid
#rm -rf /data/xxx_tomcat/webapps/*
/bin/cp -a /data/bf/ROOT /data/xxx_tomcat/webapps/
echo "啟動服務" >> /tmp/xxx.log
/data/xxx_tomcat/bin/catalina.sh start &
sleep 10
re_pid=`/usr/sbin/lsof -i:8000 | awk -F" " NR==1'{print $2}'`
if [ $re_pid == "PID" ];then
echo "tomcat自動部署成功"
#因為是jenkins執行的,上面這行是在jenkins上看的,下面是放到日誌裡
echo "tomcat重啟成功" >> /tmp/xxx.log
else
echo "tomcat自動部署失敗"
echo "tomcat重啟失敗" >> /tmp/xxx.log
#發郵件的py可以在網上搜到很多,改改就可以用,用咳咳的企業郵的話微信會同步收到郵件哈哈哈,直接做到了微信提醒
/usr/bin/python2.7 /root/sendmail.py
fi


分享到:


相關文章: