[原]Jenkins(十五)---jenkins插件之deploy

/**html

* lihaibojava

* 文章內容都是根據本身工做狀況實踐得出。git

*若有錯誤,請指正web

* 版權聲明:本博客歡迎轉發,但請保留原做者信息!shell

http://www.cnblogs.com/horizonli/p/5407551.htmlapache

*/tomcat

1、deploy插件
bash

在jenkins中發佈application到遠端有不少方法,除了publish over ssh外還有個插件deploy.hpi也能夠實現。服務器

 

   插件下載地址:app

連接: http://pan.baidu.com/s/1pLotSmR 密碼: jzud 
插件安裝方法: 點擊:Jenkins(三)---Jenkins初始配置和插件配置
或手動轉到 http://www.cnblogs.com/horizonli/p/5331970.html

2、配置 啓用插件前須要對遠程端的容器進行環境初始化(這裏以tomcat爲例)

 1.tomcat能正常啓動

 2.tomcat能在web界面使用用戶登陸到app  manager

  1)配置增長tomcat用戶:

   

  2)添加用戶和角色

  

 3)登陸tomcat manager

 

登陸後若是能看到下面的界面表示配置正確

3、使用deploy插件發佈war包到遠程容器(這裏以tomcat爲例)

在系統設置中配置maven/jdk/git  能夠參考:Jenkins(三)---Jenkins初始配置和插件配置 (除去七 SSH這一節 )

啓動插件

  

打開以後填寫

這裏單獨說下war包的路徑和界面:

在後臺看是這樣的:

從前臺看這樣的:

界面地址:

這個地址就是用設置的用戶和密碼登陸後的界面地址以下圖:

4、利用deploy插件發佈application到遠程主機

   1.首先確保遠程主機上的tomcat能正常啓動並能使用用戶登陸到application管理界面

   2.再進行構建操做

   3.以下圖所示構建成功

INFO] Building war: /opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war

[INFO] WEB-INF/web.xml already added, skipping

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.782 s
[INFO] Finished at: 2016-04-19T14:06:53+08:00
[INFO] Final Memory: 27M/438M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving /opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/pom.xml to com.eliteams/quick4j/1.0.0/quick4j-1.0.0.pom
[JENKINS] Archiving /opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war to com.eliteams/quick4j/1.0.0/quick4j-1.0.0.war
channel stopped
Deploying /opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war to container Tomcat 6.x Remote
  [/opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war] is not deployed. Doing a fresh deployment.
  Deploying [/opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war]

Finished: SUCCESS

   4.測試是否發佈成功

    4.1檢查tomcat manager頁面

    

   4.2web界面查看

 

====================================================================================

遇到的問題總結:

    問題一:部署app的時候,tomcat出現「403/401 for URL: http://172.16.18.192:8090/manager/text/list」 和The username you provided is not allowed to use the text-based Tomcat Manager (error 403)

    問題點: tomcat用戶配置文件

    解決方案:檢查用戶名和密碼是否正確  是否添加了用戶角色和權限.

    問題二(最多見):部署完app後會出現內存溢出"java.lang.OutOfMemoryError: PermGen space"

    問題點:tomcat的虛擬機內存不足,須要設置更大的內存

    解決方案:1.找到tomcat路徑,用編輯器打開catalina.sh,在「echo "Using CATALINA_BASE:    $CATALINA_BASE"」上面加入如下行:

            JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m

                 2.用腳本重啓tomcat服務器,再部署。

                 重啓tomcat示例腳本:

              

#!/bin/bash
#Time
log_time=`date +[%Y-%m-%d]%H:%M:%S`

###manual_properties###
tomcat_basehome=/opt/tomcat6/apache-tomcat-6.0.45
tomcat_port=9090
shell_environment=/bin/bash
war_Dir=/opt/jenkins
war_Name=quick4j.war
###manual_properties###



#update server environment
echo "**********************************  ${log_time} *************************************"
echo "updating server  environment start"
export JAVA_HOME=/app/java/jdk1.8.0_11
export JRE_HOME=/app/java/jdk1.8.0_11/jre
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar/
export CATALINA_2_HOME=/opt/tomcat6/apache-tomcat-6.0.45
export CATALINA_2_BASE=/opt/tomcat6/apache-tomcat-6.0.45
export TOMCAT_2_HOME=/opt/tomcat6/apache-tomcat-6.0.45
sleep 3
echo "updating server  environment  end"

#build check funcation
echo "check tomcat status..."
check_tomcat_status(){
      netstat -ant|grep ${tomcat_port}
      t=$?
       if [ $t -eq 0 ]; then
           echo "tomcat is running....port is ${tomcat_port}"
           echo "shutdown tomcat....."
           echo ">>>>>>>shutdown tomcat begin<<<<<<<<"
            ${shell_environment} ${tomcat_basehome}/bin/shutdown.sh
           echo ">>>>>>>shutdown tomcat end <<<<<<<<"
           sleep 5
       elif [ $t -ne 0 ];then 
             echo "tomcat is poweroff"
              ${shell_environment} ${tomcat_basehome}/bin/shutdown.sh
             sleep 5
       fi
} 

#check tomcat status invoke function
check_tomcat_status


#transfer  application package
deploy_Loaction=${tomcat_basehome}/webapps/
war_Dir_Data=`ls ${war_Dir}`
echo "start  transfer  war package to tomcat webapps ......."

if [ -z $war_Dir ];then
     echo "Folder ${war_Dir} is empty.please check war package in this folder!"
     exit 1 
else
     echo "Find ${war_Dir} exist war package ${war_Name}"
    # echo "deleteing old  package ${war_Name} in ${war_Dir}"
    # rm ${war_Dir}/${war_Name}
     echo "deleteing old  package ${war_Name} in ${deploy_Loaction}" 
     rm ${deploy_Loaction}${war_Name}
     echo "start  transfer ${war_Name} to ${deploy_Loaction}"
     cp ${war_Dir}/${war_Name}  ${deploy_Loaction}
     sleep 3 
fi
#reboot tomcat 
echo " >>>>>>>  rebooting  tomcat begin <<<<<<<<"
${shell_environment} ${tomcat_basehome}/bin/startup.sh
echo " >>>>>>>  rebooting  tomcat end <<<<<<<<"
echo "the log you can read in canalina.out"
echo "************************ deploy war package into container Successlly  **********************************"

    問題三:遇到「Connection refused」的異常

    問題點:tomcat

    解決方案:請檢查遠程機的容器是否啓動、端口是否設置正常,不一樣的容器配置方式不同,請參考相應容器的配置文檔

    問題四:遇到「Deployed application at context path /xxx but context failed to start」

    問題點:tomcat

    解決方案:到遠程機的WEB容器下查看日誌

 

問題總結部分參考:http://blog.csdn.net/houyefeng/article/details/50996198

   

  

 --------------------目錄電梯---------------------

[原]Jenkins(一)---我理解的jenkins是這樣的

[原]Jenkins(二)---jenkins之Git+maven+jdk+tomcat

[原]Jenkins(三)---Jenkins初始配置和插件配置

[原]Jenkins(四)---Jenkins添加密鑰對

[原]jenkins(五)---jenkins添加項目

[原]jenkins(六)---jenkins遠程部署腳本

[原]Jenkins(七)---jenkins項目編譯測試發佈由maven構建的web項目

[原]Jenkins(八)---jenkins構建項目報錯時發送錯誤報告郵件

[原]Jenkins(九)---jenkins分別發佈多個項目到多個遠程主機

[原]Jenkins(十)---jenkins註冊管理員admin並賦全部權限給admin

[原]Jenkins(十一)---jenkins使用管理員admin建立用戶和分配權限

[原]Jenkins(十二)---jenkins管理員用戶沒法登錄解決辦法Access Denied

[原]Jenkins(十三)---jenkins用戶權限管理

[原]Jenkins(十四)---jenkins示例:admin管理全部項目,新建用戶只能看部分項目

[原]Jenkins(十五)---jenkins插件之deploy 

相關文章
相關標籤/搜索