1. 程式人生 > >持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

vpd (九) http 們的 應該 lena tomcat users 進行

一、背景

看過我 Jenkins 系列博文的同學應該知道,之前的 java 程序是通過 ssh 發布到服務器上面的,通過的是 shell 腳本,但是有些時候,我們並沒有服務器的權限,只有對應 tomcat 的管理權限,直接通過 tomcat 的管理控制臺發布 war 包程序,這也叫做熱發布,發布過程中不需要重啟 tomcat。

具體該如何操作,請往下看。

二、tomcat 配置

1、開啟管理用戶

  • tomcat 默認沒有這樣的用戶,需要在TOMCAT_HOME/conf/tomcat-users.xml添加manager-script組和相應的用戶,增加如下幾行:

    <role rolename="manager-script"/>
    <user username="wzlinux" password="wzlinux" roles="manager-script"/>
    <role rolename="manager-gui"/>
    <user username="wzadmin" password="wzlinux" roles="manager-gui"/>
  • 或者為了簡便,直接弄一個權限很大的賬號,比如下面:
    <role rolename="manager"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="admin"/>
    <user username="wzlinux" password="wzlinux" roles="admin,manager,manager-script,manager-gui"/>

註:配置好後需要重啟Tomcat才能生效。

2、登陸 tomcat 後臺

只有角色是manager-gui的用戶才有管理後臺的權限,而 Jenkins 的部署只需要角色為manager-script即可。

訪問我們的內網服務器地址 http://10.0.0.11:8081/manager ,輸入賬號密碼登陸查看。

技術分享圖片

我們可以看到正在運行的項目,我們可以通過undeploy來刪除,然後通過我們下面的方法進行部署。

技術分享圖片

三、Jenkins 配置

1、下載插件

下載插件Deploy to container

技術分享圖片

2、添加 Deploy 構建

打開我們之前的 wenjuan 項目,在構建後操作選擇Deploy war/ear to a container

技術分享圖片

3、配置 deploy 構建

技術分享圖片

技術分享圖片

WAR/EAR files:是 war 包的相對路徑(相對於工作區路徑,即在工作區中 war 包的相對路徑),如我的 maven 執行完成之後會在工作區的 target 目錄下生成項目 .war,所以這裏我的路徑就寫 target\項目.war。
Content path:tomcat 的發布路徑,即使用 localhost/(content path設置的名字)來訪問項目。
Containers:選擇 Tomcat 7.x,Credentials 添加我們上面 tomcat 添加的用戶,Tomcat URL 即為我們正常訪問 tomcat 的頁面的地址。
Deploy on failure:是發生錯誤的時候是否發布到tomcat。

四、測試結果

1、查看構建日誌

通過日誌可以看到部署成功。
技術分享圖片

2、查看服務器

技術分享圖片

3、查看 tomcat 後臺

技術分享圖片

沒有任何問題,熱部署成功。

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)