1. 程式人生 > >centos7搭建git+maven+jenkins快速整合、部署環境(docker方式)(二)

centos7搭建git+maven+jenkins快速整合、部署環境(docker方式)(二)

開發十年,就只剩下這套架構體系了! >>>   

jenkins整合git和maven,並建立一個maven專案。

1、安裝maven

進入maven下載地址,下載最新版本的maven安裝包, linux環境下載apache-maven-xxx-bin.tar.gz或者 apache-maven-xxx-bin.zip,如下圖

推薦下載tar.gz結尾壓縮包。

進入/var/jenkins_home新建maven_dir檔案目錄,然後使用wget命令下載maven壓縮包到此目錄,並解壓

#建立maven_dir目錄
mkdir maven_dir
#進入maven_dir目錄
cd maven_dir
#下載maven壓縮包
wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
#解壓
tar -zxvf apache-maven-3.6.0-bin.tar.gz

配置maven的阿里雲倉庫,在settings.xml的<mirrors>中新增

	<mirror>
           <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
             <name>aliyun maven</name>
             <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
         </mirror>

2、進入jenkins管理後臺配置jdk、maven、git

注意:這裡配置的資訊都是源自已經執行的jenkins docker容器內部資訊。

進入後臺,點選系統管理->全域性工具管理

配置jdk地址,點選新增jdk按鈕

別名可以自行定義,最新版的jenkins預設使用的jdk1.8.至於java_home可通過以下方式獲取到,這裡的

#進入容器命令列,jenkins是我對容器起的名字
docker exec -it jenkins /bin/bash
#進入容器命令列之後,直接進入java_home目錄
cd $JAVA_HOME
#通過pwd顯示路徑
pwd

如圖

複製此地址,黏貼到管理後臺對應輸入框即可。

配置git,由於git在linux下安裝還需要其他的依賴庫,在容器內安裝這些比較麻煩,所以這裡直接讓jenkins自行安裝。勾選自動安裝單選框。

配置maven資訊,點選maven安裝按鈕,填寫maven別名,填寫maven_home路徑,上面我們安裝的路徑是/var/jenkins_home/maven_dir/apache-maven-3.6.0 ,直接填寫到輸入框中。

這裡為什麼可以使用這個地址呢?因為在

centos7搭建git+maven+jenkins快速整合、部署環境(docker方式)(一)

中我已經解釋了,jenkins容器在啟動的時候,宿主機已經掛載了容器檔案目錄,所以這個地址就是容器中相對應的目錄地址。

同時如圖,jenkins支援自動安裝maven,偷懶患者可以直接省去上面,本地下載、安裝maven相關操作,直接在這步勾選自動安裝即可,但是不推薦。

都配置完成後,點選應用,儲存。

3、建立一個maven專案並實現自動化部署

這一步,需要有一個maven的github專案,同時需要啟動一個tomcat8.*的應用伺服器。

1.修改tomcat8相關配置

這一步,主要為了jenkins通過maven實現tomcat下熱部署所做的配置,我們知道tomcat manager可以在不停止tomcat的情況實現war的部署。因此我們就從這裡入手。

配置role和user是的maven可以獲得操作tomcat的許可權,修改tomcat的tomcat-users.xml檔案,新增如下配置:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="jenkins" password="jenkins123" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>

然後開放manager訪問許可權:

修改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" />-->
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

2、啟動修改完配置的tomcat8

我這裡tomcat8是和jenkins容器的宿主機在一臺機器上,為了避免和jenkins對映埠衝突,對tomcat8埠做了修改,改成8090.如果沒在同一臺伺服器上,或者或者埠不衝突,可不做修改。

3、jenkins建立maven任務

點選新建任務,進入建立介面,輸入與github上專案相同的名稱,並選中“構建一個maven專案”,點選“確定”。(我這裡web已經建立了所以標紅)

進入配置介面:首先配置general,勾選github。並填寫github上專案地址,不動地址怎麼填可以點選後面的問號。

原始碼管理:勾選git,並填寫github上專案的克隆地址,新增github賬號資訊

新增github使用者資訊介面

構建觸發器:一般使用三種:1、觸發遠端構建;2、定時構建;3、輪詢

1、觸發遠端構建:通過一個遠端構建url觸發構建操作。url可使用授權令牌來進行許可權控制,防止被亂用。

2、定時構建:通過cron時間表達式,指定時間或者每隔多少時間執行構建操作。

3、輪詢:同樣使用cron表示式,指定時間或者每隔多少時間執行構建,與定時構建不同的是,它會校驗github中專案版本資訊,只有滿足cron和github版本更新兩個條件才會執行構建操作。

我這裡選擇的輪詢,十分鐘掃描一次。

構建後操作:配置maven生成war資訊、上下文及web容器資訊。

配置war的生成路徑,我這裡是target/web.war,並沒有新增版本號資訊;上下文使用的web;web容器使用的前面配置好的tomcat8,同時添加了tomcat的realm域使用者(使用者名稱jenkins,密碼jenkins123),並填寫tomcat的訪問url。

到此配置基本完成,點選應用,儲存。

4、手動構建下,測試下

進入到已經建立的任務介面,點選立即構建,驗證下配置是否都正確。點選左下角的 build history 檢視控制檯日誌。

注意:第一次構建會很慢,需要多等一段時間。原因就是maven install。

當日志最下方出現:Finished: SUCCESS 證明成功了。

訪問部署的tomcat8,檢視部署是否成功?

你還可以,修改下github上專案,測試下輪詢是否正常。靜等十分鐘看效果即可。

至此,從搭建到demo演示完畢。後面有機會搭建svn+m