温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Jenkins 自动化部署上线

发布时间:2020-04-05 19:53:23 来源:网络 阅读:981 作者:我不是九爷 栏目:云计算

Jenkins 自动化部署上线

摘要

jenkins自动化部署项目,通过jenkins 部署来节省运维时间,不需要手动cp上线及版本发布

Jenkins 自动化部署上线

Jenkins 自动化部署上线

Jenkins


  • Jenkins 自动化部署上线

    • (1) Java 环境演示 [Jenkins和Tomcat在一台服务器上]

    • (2) Java 环境演示 [Jenkins和Tomcat不在一台服务器上]

    • (3) Java 环境演示 [上线脚本]

    • (4) NodeJs 环境演示 [上线脚本]

    • 一、Jenkins是什么

    • 二、上线流程图

    • 三、Jenkins安装配置

    • 四、Jenkins 自动化部署项目案例


一、Jenkins是什么

Jenkins是一款自包含的开源自动化服务,可用于自动执行与构建,测试和交付或部署软件有关的各种任务。
Jenkins目前可以通过本地系统软件包Docker进行安装,甚至可以通过任何安装了Java运行环境的计算机独立运行

二、上线流程图

既然我们说到自动化上线,我们就不得不说说一个项目上线的流程.只有规范起来才可以做到不出事故!

上线流程图如下图所示
Jenkins 自动化部署上线

三、Jenkins安装配置

Jenkins依赖Java环境,我们需要安装Java环境以及相关的环境准备

  1. ###关闭防火墙

  2. $ iptables -F

  3. $ iptables -X

  4. $ systemctl stop firewalld

  5. $ systemctl disable firewalld


  6. ###安装yum源

  7. $ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  8. $ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

  9. $ yum clean all && yum makecache  

1.下载Jdk包
Jenkins 自动化部署上线
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

上传jdk包到服务器

  1. ###解压拷贝jdk

  2. $ tar xf jdk-8u171-linux-x64.tar.gz -C /usr/local/

  3. $ ln -s /usr/local/jdk1.8.0_171/ /usr/local/jdk

  4. $ ln -s /usr/local/jdk/bin/java /usr/bin/java


  5. ###设置环境变量

  6. $ vim /etc/profile

  7. export JAVA_HOME=/usr/local/jdk

  8. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

  9. export PATH=$JAVA_HOME/bin:$PATH


  10. $ source  /etc/profile

2.安装Jenkins

  1. $ wget  -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

  2. $ rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

  3. $ yum install jenkins -y


  4. $ systemctl start jenkins

  5. ##如果我们启动Jenkins出现错误可以直接使用systemctl status jenkins查看错误

jenkins相关目录释义:

(1)/usr/lib/jenkins/:jenkins安装目录,war包会放在这里。
(2)/etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
(3)/var/lib/jenkins/:默认的JENKINS_HOME。
(4)/var/log/jenkins/jenkins.log:jenkins日志文件。

检查端口是否存在
Jenkins 自动化部署上线

3.配置Jenkins
Jenkins 自动化部署上线

Jenkins有安全策略,我们按照提示拷贝验证码即可
Jenkins 自动化部署上线

将验证码复制到Web框里
Jenkins 自动化部署上线

我们这里使用推荐就可以了,因为后期我们都可以在安装
Jenkins 自动化部署上线

安装插件中,有的插件会因为网络问题无法安装成功

Jenkins 自动化部署上线

我们这里可以创建一个管理员,或者直接使用admin

我们最好不要直接使用admin

Jenkins 自动化部署上线

Jenkins 自动化部署上线

安装完成访问地址:iP:8080
Jenkins 自动化部署上线

到这里我们Jenkins已经安装成功,剩下的就是配置插件和配置环境

Jenkins 自动化部署上线

因为我们目前什么都没有需要安装插件,点击下步安装插件
Jenkins 自动化部署上线

为了模拟环境我们需要安装Jenkins一些相关插件
 下面2个maven 插件都需要勾选  
 插件名称:maven lntergration

Jenkins 自动化部署上线

我们勾选安装重启
Jenkins 自动化部署上线
Jenkins 自动化部署上线

安装完成后如下图所示
默认是没有下面的maven项目的
Jenkins 自动化部署上线

4.Jenkins配置项目

配置SVN地址
因为我是新建的Jenkins目录,没有权限,所以需要创建一个用于认证.
Jenkins 自动化部署上线

填写SVN地址,因为我这里的svn已经链接到ldap,所以不需要输入svn的密码,默认这里是svn的用户和密码

具体文章可以参考 VisualSVN 迁移至Linux SVN+Apache+ssl集成LDAP

Jenkins 自动化部署上线

认证成功之后
Jenkins 自动化部署上线

了解maven 配置
首先我们的svn分支下面需要有pom.xml
Jenkins 自动化部署上线

继续往下




因为我们只安装maven的插件,并没有安装maven服务,所以这里需要我们配置
Jenkins 自动化部署上线

我们就在这里添加一个名字,maven就自动安装了
Jenkins 自动化部署上线

Maven安装完成了,需要依赖吧都是从maven.apache.org下载会比较慢,所以我们指定私服的地址,因为在实际生产中也都是使用私服的。

在maven的配置文件里面也需要配置  配置文件conf/settings.xml 因为我们所使用的是Jenkins的自动安装,而不是指定路径所以我们要查到这个配置文件

maven 自动安装的配置路径
Jenkins 自动化部署上线

配置Maven仓库地址

这里配置的都是私服地址
相关文章  Jenkins+Maven+SVN+Nexus 搭建持续集成环境

Jenkins 自动化部署上线
配置Maven 镜像地址
Jenkins 自动化部署上线

配置Maven 编译参数   [研发都会]

相关文章:maven 编译命令
Jenkins 自动化部署上线

这个pom.xml里面配置是私服的地址
因为代码里面有很多东西是需要拉去依赖包,这些依赖包就存放在本地的私有仓库里(Nexus)

代码中pom.xml配置如下
私有仓库的地址
Jenkins 自动化部署上线

5.构建测试
Jenkins 自动化部署上线

控制台输出说明

Jenkins 自动化部署上线

Jenkins 自动化部署上线

Jenkins 自动化部署上线

6.Jenkins 工程目录

Jenkins 自动化部署上线

可以通过修改Jenkins主目录

Jenkins 自动化部署上线

Jenkins打包好后的目录,这个war包就是我们需要拷贝的tomcat下面的
Jenkins 自动化部署上线




四、Jenkins 自动化部署项目案例

因为目前环境原因,我这里只是截图Jenkins发布的流程(本次演示只是针对测试环境日常发布版本)

(1) Java 环境演示 [Jenkins和Tomcat在一台服务器上]

1.Jenkins 配置
Jenkins 自动化部署上线

SVN部分配置
Jenkins 自动化部署上线

maven及脚本设置
Jenkins 自动化部署上线

2.不发脚本配置如下:
相关参考:Jenkins可用环境变量列表
脚本的存放路径可以在系统管理->全局配置->Jenkins路径

  1. Last login: Thu Jun 28 18:01:59 2018 from 172.16.29.39

  2. [root@tomcat ~]# cat /jenkins/deploy.sh

  3. #!/bin/bash


  4. #

  5. # Jenkins工程构建通用TOMCAT部署脚本

  6. # @author abcdocker

  7. # @create_time 2017-08-19

  8. #

  9. # 在Jenkins内配置部署单元参数

  10. #      参数格式:MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH  MAVEN模块名称:需要部署的目标TOMCAT绝对路径

  11. #      只有单个部署单元且没有Maven子模块时,模块名称参数可以没有,参数格式为:TOMCAT_ABSOLUTE_PATH

  12. #

  13. # 注意:

  14. #      在本部署脚本内会执行TOMCAT启动脚本,为避免Jenkins在构建成功以后杀掉所有衍生的后台进程,需要在Jenkins内配置全局环境变量 BUILD_ID 值为 allow_to_run_as_daemon

  15. #

  16. #


  17. DEPLOY_TARGET_TOMCAT=$TOMCAT


  18. #校验部署参数,不能为空

  19. if [ -z "$DEPLOY_TARGET_TOMCAT" ]

  20. then

  21.    echo

  22.    echo 部署参数为空,部署失败!

  23.    echo "#####################################################################"

  24.    echo

  25.    echo 单个部署单元参数格式:

  26.    echo          MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH MAVEN模块名称:需要部署的目标TOMCAT绝对路径

  27.    echo

  28.    echo 多个部署单元参数格式:(多个部署单元使用空格分割)

  29.    echo          MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH

  30.    echo

  31.    echo "#####################################################################"

  32.    exit 1

  33. fi


  34. echo

  35. echo 部署参数:${DEPLOY_TARGET_TOMCAT}


  36. TOMCAT_ARR=${DEPLOY_TARGET_TOMCAT//;/ }

  37. ARR=($TOMCAT_ARR)

  38. ARR_LEN=${#ARR[*]}

  39. echo ${ARR_LEN} 个部署单元


  40. i=1

  41. #获取Jenkins传入的目标TOMCAT组

  42. for T in $TOMCAT_ARR

  43. do

  44.    echo

  45.    echo 开始 处理第 ${i} 个部署单元

  46.    echo 第一个部署单元:$T


  47.    #获取目标TOMCAT的WAR路径和TOMCATA的绝对路径

  48.    TOMCAT_PARAM=(${T//:/ })

  49.    MODULE_NAME=${TOMCAT_PARAM[0]}

  50.    TARGET_TOMCAT_PATH=${TOMCAT_PARAM[1]}

  51.    WAR_PATH="$WORKSPACE/$MODULE_NAME/target/*.war"


  52.    echo 部署单元模块名称:"${MODULE_NAME}"

  53.    echo 部署WAR包路径:"${WAR_PATH}"

  54.    echo 部署TOMCAT路径:"${TARGET_TOMCAT_PATH}"


  55.    #需要考虑MAVEN单模块下的部署问题

  56.    #if [ "${#ARR[*]}" -eq 1 -a -z "$TARGET_TOMCAT_PATH" ]

  57.    if [ "$ARR_LEN" -eq 1 -a -z "$TARGET_TOMCAT_PATH" ]

  58.    then

  59.        #MAVEN过程没有子模块,单个部署单元

  60.        TARGET_TOMCAT_PATH=$MODULE_NAME

  61.    MODULE_NAME="NULL"

  62.    fi


  63.    #校验参数,WORKSPACE变量来自于Jenkins环境变量

  64.    if [ -z "$MODULE_NAME" -o ! -f $WAR_PATH ]

  65.    then

  66.        echo 错误:MAVEN部署模块名称 参数为空 找不到WAR包!

  67.        echo 部署失败!

  68.        exit 1

  69.    fi


  70.    if [ -z "$TARGET_TOMCAT_PATH" -o ! -d "$TARGET_TOMCAT_PATH" ]

  71.    then

  72.        echo 错误:目标TOMCAT绝对路径 参数为空 TOMCAT目录不存在!

  73.        echo 部署失败!

  74.        exit 1

  75.    fi


  76.    echo 开始清理目标TOMCAT启动进程...

  77.    TOMCAT_PID=`ps -ef |grep "$TARGET_TOMCAT_PATH" |grep  "start" |awk '{print $2}'`

  78.    if [ -n "$TOMCAT_PID" ]

  79.    then

  80.        echo TOMCAT_${i},PID${TOMCAT_PID},正在结束该进程...

  81.        kill -9 $TOMCAT_PID && echo PID${TOMCAT_PID} 已被干掉!

  82.    else

  83.        echo TOMCAT_${i} 进程未启动!

  84.    fi


  85.    echo 开始清理目标TOMCAT缓存...

  86.    rm -rf $TARGET_TOMCAT_PATH/webapps/*

  87.    rm -rf $TARGET_TOMCAT_PATH/logs/*

  88.    rm -rf $TARGET_TOMCAT_PATH/work/*


  89.    echo 开始部署WAR包...

  90.    cp -a $WAR_PATH $TARGET_TOMCAT_PATH/webapps/ROOT.war && echo WAR包部署完毕。


  91.    echo 开始启动目标TOMCAT服务...

  92.    sleep 10

  93.    /bin/bash $TARGET_TOMCAT_PATH/bin/startup.sh


  94.    echo 开始配置web目录的FTP权限...

  95.    #启动过程会自动解压WAR包,所以在这里需要等待WAR包解压完成再调整目录权限

  96.    sleep 30

  97.    chown -R vftpuser.vftpuser ${TARGET_TOMCAT_PATH}/webapps/ && echo 目录权限配置完毕。


  98.    echo 部署成功

  99.    echo 完成 第 ${i} 个部署单元处理。

  100.    echo


  101.    ((i++))

  102. done

3.构建效果如下图所示:
Jenkins 自动化部署上线




(2) Java 环境演示 [Jenkins和Tomcat不在一台服务器上]

上面的脚本是针对Jenkins和Tomcat都在相同的目录,有的时候我们测试环境会存在不在一台服务器的情况,脚本如下

  1. 只是脚本简单的修改

  2. [root@tomcat ~]# cat /jenkins/ysc.sh

  3. #!/bin/bash


  4. #

  5. # Jenkins工程构建通用TOMCAT部署脚本

  6. # @author 刘曙

  7. # @create_time 2017-08-19

  8. #

  9. # 在Jenkins内配置部署单元参数

  10. #      参数格式:MAVEN_MODULE_NAME:TOMCAT_ABSOLUTE_PATH  MAVEN模块名称:需要部署的目标TOMCAT绝对路径

  11. #      只有单个部署单元且没有Maven子模块时,模块名称参数可以没有,参数格式为:TOMCAT_ABSOLUTE_PATH

  12. #

  13. # 注意:

  14. #      在本部署脚本内会执行TOMCAT启动脚本,为避免Jenkins在构建成功以后杀掉所有衍生的后台进程,需要在Jenkins内配置全局环境变量 BUILD_ID 值为 allow_to_run_as_daemon

  15. #

  16. #


  17. DEPLOY_TARGET_TOMCAT=$YSC

  18. HOST=root@172.16.1.35

  19. #校验部署参数,不能为空

  20. if [ -z "$DEPLOY_TARGET_TOMCAT" ]

  21. then

  22.    echo

  23.    echo 部署参数为空,部署失败!

  24.    echo "#####################################################################"

  25.    exit 1

  26. fi


  27. echo

  28. echo 部署参数:${DEPLOY_TARGET_TOMCAT}


  29. TOMCAT_ARR=${DEPLOY_TARGET_TOMCAT//;/ }

  30. ARR=($TOMCAT_ARR)

  31. ARR_LEN=${#ARR[*]}

  32. echo ${ARR_LEN} 个部署单元


  33. i=1

  34. #获取Jenkins传入的目标TOMCAT组

  35. for T in $TOMCAT_ARR

  36. do

  37.    echo

  38.    echo 开始 处理第 ${i} 个部署单元

  39.    echo 第一个部署单元:$T


  40.    #获取目标TOMCAT的WAR路径和TOMCATA的绝对路径

  41.    TOMCAT_PARAM=(${T//:/ })

  42.    MODULE_NAME=${TOMCAT_PARAM[0]}

  43.    TARGET_TOMCAT_PATH=${TOMCAT_PARAM[1]}

  44.    #WAR_PATH="/jenkins/workspace/ysc-all/${MODULE_NAME}/target/*.war"

  45.    WAR_PATH="${WORKSPACE}/${MODULE_NAME}/target/*.war"


  46.    echo 部署单元模块名称:"${MODULE_NAME}"

  47.    echo 部署WAR包路径:"${WAR_PATH}"

  48.    echo 部署TOMCAT路径:"${TARGET_TOMCAT_PATH}"



  49.    #判断IP是否有相关目录

  50.    ssh 172.16.1.35 "[ -d $TARGET_TOMCAT_PATH ]" >/dev/null 2>&1

  51.    if [ $? != 0 ];then

  52.       echo 错误

  53.    else

  54.       echo  正确

  55.    fi



  56.    #校验参数,WORKSPACE变量来自于Jenkins环境变量

  57.    if [ -z "$MODULE_NAME" -o ! -f $WAR_PATH ]

  58.    then

  59.        echo 错误:MAVEN部署模块名称 参数为空 找不到WAR包!

  60.        echo 部署失败!

  61.        exit 1

  62.    fi


  63.    #scp 软件包

  64.   ssh $HOST /etc/init.d/${MODULE_NAME} stop

  65.   ssh 172.16.1.35 "[ -d $TARGET_TOMCAT_PATH/webapps/ROOT/ ]" >/dev/null 2>&1

  66.   if [ $? = 0 ];then

  67.      ssh 172.16.1.35 rm -rf $TARGET_TOMCAT_PATH/webapps/ROOT

  68.        if [ $? = 0 ];then

  69.           scp  $WAR_PATH root@172.16.1.35:$TARGET_TOMCAT_PATH/webapps/ROOT.war && echo WAR包部署完毕。

  70.           echo $TARGET_TOMCAT_PATH is OK

  71.        else

  72.           echo 删除$TARGET_TOMCAT_PATH is error

  73.        fi

  74.   else

  75.           echo "not found $TARGET_TOMCAT_PATH/webapps/ROOT"

  76.           scp  $WAR_PATH root@172.16.1.35:$TARGET_TOMCAT_PATH/webapps/ROOT.war && echo WAR包部署完毕。

  77.           ssh $HOST /etc/init.d/${MODULE_NAME} restart

  78.   fi


  79. ####################启动文件


  80. done

  81.  #scp /home/config.properties/ysc/${MODULE_NAME}.js root@172.16.1.35:$TARGET_TOMCAT_PATH/webapps/ROOT/web/js/basePath.js

  82.  ssh $HOST /etc/init.d/${MODULE_NAME} restart


Jenkins配置如下修改
Jenkins 自动化部署上线

Jenkins 自动化部署上线

修改完成后我们构建演示
Jenkins 自动化部署上线

提示:这种环境下配置文件都是通过maven build进行控制,也就是通过研发控制配置文件

+
+
+
+




(3) Java 环境演示 [上线脚本]

线上环境演示
我们的上线流程如下:
Jenkins 自动化部署上线

Jenkins配置如下:
Jenkins 自动化部署上线
Jenkins 自动化部署上线
Jenkins 自动化部署上线

+
+
+
+
+
1.首先测试环境脚本:

  1. [root@tomcat ~]# cat /server/scripts/.upgrade-smscenter.sh

  2. #!/bin/bash

  3. WAR="/jenkins/workspace/portal-smscenter/bxg-sms-center-web/target/*.war"

  4. Path="/data/hub/bxg-smscenter/`date +%Y%m%d`/"


  5. scp_war(){


  6. if [ ! -d $Path ];then

  7. ssh root@file-server mkdir -p $Path

  8.    scp $WAR root@file-server:$Path

  9. else

  10.    scp $WAR root@file-server:$Path

  11. fi

  12. }

  13. ssh_file(){

  14.  ssh root@file-server "/bin/bash /server/script/bxg/bxg-smscenter.sh"

  15. }

  16. scp_war

  17. ssh_file

2.跳板机脚本修改

[root@File-server1 ~]# cat /server/script/bxg/bxg-smscenter.sh#!/bin/bashHOST=online-server2WAR="/data/hub/bxg-smscenter/`date +%Y%m%d`"DIR="/application/smscenter/webapps/ROOT/"function scp_file {    if `ssh root@$HOST "[ ! -d $WAR ]"`;then            ssh root@$HOST "mkdir -p $WAR"    fi            scp $WAR/*.war root@$HOST:$WAR/            echo "scp $WAR/*.war root@$HOST:$WAR/"}ssh_deploy(){    ssh root@$HOST "/bin/bash /server/scripts/deploy_smscenter.sh"}scp_filessh_deploy

3.web 服务器脚本

  1. [root@online-server2 ~]# cat /server/scripts/deploy_smscenter.sh

  2. #!/bin/bash

  3. WAR="/data/hub/bxg-smscenter/`date +%Y%m%d`"

  4. OBJECT="/application/smscenter/webapps/ROOT/"

  5. Backup="/data/tomcat/bxg-smscenter-`date +%Y%m%d`"

  6. SCR_D="/application/smscenter/webapps/ROOT"

  7. #config="/data/bak"



  8. backup_tar(){

  9.    tar zcvf $Backup.tar.gz $SCR_D/

  10.    echo "为了防止意外cp整个项目目录存放"

  11.    cp -a $SCR_D/ $Backup

  12.    rm -rf $OBJECT/*

  13. }





  14. cp_war(){

  15.    unzip $WAR/*.war -d $SCR_D/

  16. }


  17. cp_config(){

  18.    cat $Backup/WEB-INF/classes/application-prod.properties >$SCR_D/WEB-INF/classes/application-prod.properties

  19.    /etc/init.d/smscenter restart

  20. }

  21. backup_tar

  22. cp_war

  23. cp_config

  24. [root@online-server2 ~]#

相关文章  企业必会技能 tomcat

+
+
+
+




(4) NodeJs 环境演示 [上线脚本]

node 环境上线流程
Jenkins配置如下 [node项目不适用maven,所以可以不用创建maven项目,直接在Jenkins创建普通项目就可以]
Jenkins 自动化部署上线
Jenkins 自动化部署上线

1.测试环境脚本

  1. [root@tomcat ~]# cat /server/scripts/mobile/mobile.sh

  2. #!/bin/bash

  3. source /etc/profile


  4. HOST=file-server

  5. BASE_DIR=/server/scripts/mobile/m

  6. url=$1

  7. server=$2

  8. DATE=`date +%Y%m%d`



  9. tar(){

  10. rm -rf $BASE_DIR


  11.    [ -d $BASE_DIR ] || mkdir $BASE_DIR

  12.    cd $BASE_DIR

  13. echo "##########################################################"

  14. echo "代码拉取中!!!"

  15. svn co -q $url/ .

  16.    echo "##########################################################"


  17. }


  18. cp(){


  19.    cd ${BASE_DIR}

  20. /bin/tar -zcvf m_${DATE}.tar.gz ./*

  21.    echo "##########################################################"

  22.    echo "文件已经打包完成! 正在拷贝中!!!"

  23.    echo "##########################################################"

  24.    sleep 5

  25.    scp  m_${DATE}.tar.gz root@$HOST:/data/hub/bxg-mobile/

  26.    echo "##########################################################"

  27.    echo "文件已经拷贝完成! 正在上传服务器中!!!"

  28.    echo "##########################################################"

  29.        ssh root@file-server "/bin/bash /server/script/bxg/bxg-mobile.sh $server"


  30. }


  31. tar

  32. cp

  33. [root@tomcat ~]#

2.跳板机脚本

  1. [root@File-server1 ~]# cat /server/script/bxg/bxg-mobile.sh

  2. #!/bin/bash

  3. HOST=$1

  4. Mobile_tar="/data/hub/bxg-mobile"

  5. DIR="/application/node"

  6. DATE=`date +%Y%m%d`





  7. scp_file(){

  8.    if `ssh root@$HOST "[ ! -d $Mobile_tar ]"`;then

  9.            ssh root@$HOST "mkdir -p $Mobile_tar"

  10.    fi

  11.            scp $Mobile_tar/m_${DATE}.tar.gz root@$HOST:$DIR/

  12.        sleep 3

  13.        echo "   "

  14.        echo "##########################################################"

  15.        echo "File-server 正在拷贝 ${HOST}!!!"

  16.        sleep 3

  17.        echo "##########################################################"

  18. }



  19. ssh_deploy(){

  20.           echo "Hi"

  21.    ssh root@$HOST "/bin/bash /server/scripts/bxg/bxg-mobile.sh"

  22. }


  23. scp_file

  24. ssh_deploy

3.web 发布脚本

  1. [root@iZbp11tefvghtcfn5mudgdZ ~]# cat /server/scripts/bxg/bxg-mobile.sh

  2. #!/bin/bash

  3. source /etc/profile

  4. DIR="/application/node"

  5. DATE=`date +%Y%m%d`


  6. Backup="/application/node/m/"

  7. BAK="/data/hub/bxg-mobile"




  8. backup_tar(){

  9.    echo "为了防止意外cp整个项目目录存放"

  10.    cp -ar $Backup ${BAK}/mobile_$DATE

  11.    echo "online-server 原目录拷贝备份完成!"

  12. }




  13. cp_war(){

  14.    /etc/init.d/mobile stop

  15.    #mv $Backup /tmp/m_${DATE} && rm -rf /tmp/m_${DATE}

  16. rm -rf $Backup

  17.    mkdir $Backup && cd /application/node/

  18. tar xf m_${DATE}.tar.gz -C $Backup



  19. }

  20. npm_config(){

  21.    cd $Backup

  22. cnpm install

  23. npm run build-prod

  24. npm run start-prod &>/var/log/mobile_${DATE}.log &


  25. }


  26. C(){

  27.    echo "++++++++++++++++++++++++++++++++++++++++++++++++++++"

  28.    curl  -I 127.0.0.1:3000

  29.    echo "###################################################"

  30.    echo "若是200 服务启动正常! 可以启动另一台!"

  31.    echo "###################################################"

  32. }








  33. backup_tar

  34. cp_war

  35. npm_config

  36. C

+
+
+
相关文章 Node.js 环境搭建

总结:Jenkins自动化不是运维一个人就可以完成的,需要研发的参与,本文只是给大家展示一下我公司的自动化,我眼里所谓的自动化. 希望大家不喜勿喷,对文章有意见或建议请在评论留言哦~



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI