0
点赞
收藏
分享

微信扫一扫

小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

微笑沉默 2021-09-23 阅读 91
随笔

写在前面

小伙伴的疑问

我们还是通过一张图来直观的了解下小伙伴的疑问吧。


老规则,我们直接进入正题。

基础环境

所有的环境均搭建在CentOS 6.5 x64服务器上,IP:192.168.209.121 主机名:liuyazhuang121 , 并在服务器上配置了主机名到IP的映射。

构建Web项目

环境配置

首先,我们来看下如何通过Jenkins自动构建发布Web项目到远程Tomcat。我们使用的环境是:Jdk1.8+Maven3.6.3+Tomcat9.0+Jenkins2.19.3+SSH+Shell

其中,JDK、Maven和Tomcat小伙伴们可以自行下载安装并配置系统环境,可以到链接http://download.csdn.net/download/l1028386804/10127368 下载jenkins2.19.3。

配置SSH免密码登录

ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys/

配置Jenkins

启动Jenkins

下载的Jenkins war包拷贝到${TOMCAT_HOME}/webapp目录下,并启动Tomcat,在浏览器中输入http://192.168.209.121:8080/jenkins,如下图所示,则证明Jenkins启动成功。

安装插件

上述默认安装的插件还不够

依次点击 系统管理->插件管理-> 可选插件-> 过滤搜索框中 查找如下插件:

  • Maven Integration plugin
  • SSH plugin
  • Deploy to container Plugin

设置系统管理-Global Tool Configuration

在系统管理-Global Tool Configuration中配置JDK和Maven,如下:


配置系统管理-Configure Global Security

注册并登录用户

配置SSH remote hosts

在系统管理-系统设置,配置SSH remote hosts


点击Add按钮设置登录方式,如下图所示:


点击Check connection按钮 ,如果页面上输出Successfull connection,则SSH配置成功,如下图所示:


新建项目构建

配置项目构建

General-配置项目名称

源码管理-配置SVN信息

配置Pre Steps

配置Post Steps

配置完成后保存。

构建项目

回到主页,点击立即构建项目按钮,如下图:


可看到页面上出现对maven_test的构建进度条,点击进度条即可进入日志输出页面,如下图:


输出如下日志,则代表构建并部署到tomcat成功。


tomcat.sh脚本

最后,我们给出tomcat.sh脚本的内容,如下所示。

#!/bin/sh  
  
## java env  
## service name    
SERVICE_NAME=tomcat_service  

case "$1" in  
  
    start)  
         /usr/local/tomcat/test-tomcat-10000/bin/startup.sh 
        ;;  
  
    stop)  
        sleep 5  
        ##  
        ## edu-service-aa.jar  
        ## edu-service-aa-bb.jar  
        P_ID=`ps -ef | grep -w "test-tomcat-10000" | grep -v "grep" | awk '{print $2}'`  
        if [ "$P_ID" == "" ]; then  
            echo "=== $SERVICE_NAME process not exists or stop success"  
        else  
            echo "=== $SERVICE_NAME process pid is:$P_ID"  
            echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"  
            kill  $P_ID  
        fi  
        ;;  
  
    restart)  
        $0 stop  
        sleep 2  
        $0 start  
        echo "=== restart $SERVICE_NAME"  
        ;;  
  
    *)  
        ## restart  
        $0 stop  
        sleep 2  
        $0 start  
        ;;  
  
esac  
exit 0 

构建Java项目

Jenkins构建Jar包发布到远程服务器和构建War包发布到远程服务器配置基本一致,只是Post Steps配置稍有不同。

配置Post Steps

配置Jar包发布到远程服务器的Post Steps配置如下:


构建项目

account-server.sh脚本

最后,我们也给出account-server.sh脚本的内容,如下所示。

#!/bin/sh  
  
## java env  
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_144  
export JRE_HOME=$JAVA_HOME/jre  
  
## service name  
APP_NAME=account  
  
SERVICE_DIR=/usr/local/dubbo-server/$APP_NAME  
SERVICE_NAME=medcare-dubbo-$APP_NAME  
JAR_NAME=$SERVICE_NAME\.jar  
PID=$SERVICE_NAME\.pid  
  
cd $SERVICE_DIR  
  
case "$1" in  
  
    start)  
        nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 &  
        echo $! > $SERVICE_DIR/$PID  
        echo "=== start $SERVICE_NAME"  
        ;;  
  
    stop)  
        kill `cat $SERVICE_DIR/$PID`  
        rm -rf $SERVICE_DIR/$PID  
        echo "=== stop $SERVICE_NAME"  
  
        sleep 5  
        ##  
        ## edu-service-aa.jar  
        ## edu-service-aa-bb.jar  
        P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'`  
        if [ "$P_ID" == "" ]; then  
            echo "=== $SERVICE_NAME process not exists or stop success"  
        else  
            echo "=== $SERVICE_NAME process pid is:$P_ID"  
            echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"  
            kill -9 $P_ID  
        fi  
        ;;  
  
    restart)  
        $0 stop  
        sleep 2  
        $0 start  
        echo "=== restart $SERVICE_NAME"  
        ;;  
  
    *)  
        ## restart  
        $0 stop  
        sleep 2  
        $0 start  
        ;;  
  
esac  
exit 0  

好了,今天就到这儿吧!我是冰河,我们下期见!

举报

相关推荐

0 条评论