zoukankan      html  css  js  c++  java
  • 远程服务器上的服务链接最新jenkins构建包

    我们有这样的发现,前端的web代码在服务器上的更新是很频繁的,并且他们每次都要求整个文件夹下的都删掉,然后把新的包全部复制上去。

    背景:我使用jenkins构建web-h5的工程后,自动部署到测试环境上给测试人员测试,或者部署到开发环境,给开发人员验证,原来是编译结束后将dist目录下的复制到远程机器的路径/usr/local/webapps/h5/help路径下,复制前,删除/usr/local/webapps/h5/help文件夹,基本步骤如下:

    cnpm install

    npm run build --target=help --lbServer=$test_env    #test_env是对应的环境,可以是test,或者dev

    ssh root@$remote_ip "rm -rf  /usr/local/webapps/$web_m/$web_dir"

    cd dist

    scp  -r *  root@$remote_ip:  /usr/local/webapps/h5/help/

    但是这个上面的操作有一个风险:ssh root@$remote_ip "rm -rf  /usr/local/webapps/$web_m/$web_dir"  如果首次调试新工程,忘记了在服务器上创新新文件夹$web_m,就会把/usr/local/webapps下的都删掉。。。。。(我发生过一次,觉得这个rm -rf 太吓人了)

    然后我想如果我每次都把打好的包放在ftp的固定路径下,然后让web的模块软链接到这个路径下的最新包,这样是比较安全的

    操作是将构建好的包(格式统一:年月日_分支_commitid_模块_环境,比如202009291148_develop_efde501_h5_help_test)

    now_time=`date "+%Y%m%d%H%M"`   #获取时间
    commit=`git rev-parse --short HEAD`   #获取commitid
    dist_name="$now_time"_"$dn"_"$commit"_$web_m_$web_dir   #dn是分支,web_m 这里为h5,web_dir 为help(我有多个模块和工程,所以这些都是传入的变量)

    cnpm install

    npm run build --target=help --lbServer=$test_env    #test_env是对应的环境,可以是test,或者dev

    mv dist  $dist_name   #(格式统一:年月日_分支_commitid_模块_环境,比如202009291148_develop_efde501_h5_help_test)

    scp   -r $dist_name  root@$remote_ip:  /usr/local/webapps/all_proj/

    link_dir "$web_m"   "$web_dir"   调用软链接函数,函数link_dir 如下

    function link_dir()

    {

           [ "x$1" == "x" ] && echo var1 is null && exit 1
           [ "x$2" == "x" ] && echo var2 is null && exit 1
          rdir=/usr/local/webapps/$1/$2
          if ssh root@$remote_ip test -d /usr/local/webapps/all_pro/$dist_name; then #检测远程文件夹是否存在

              ssh root@remote_ip "rm -rf $rdir" #删除软连接  (注意这里不能使用rm -rf $rdir/  这样删软件会把源文件夹删掉)

               ssh root@remote_ip "ln -s /usr/local/webapps/all_pro/$dist_name $rdir" #创建软链接,链接到最新的构建包
         fi
          echo ++++++link dir information as follow+++++++
          ssh $remote_ip"ls -all $rdir" #察看软链接信息

    }

    这样每次都会链接到最新的构建包:

  • 相关阅读:
    mongodb备份与恢复
    MongoDB-3.4安装文档
    (转)Zabbix 3.2.7编译安装记录
    (转)error while loading shared libraries:libmysqlclient.so.18 错误
    (转)如何使用Journalctl查看并操作Systemd日志
    (转)基于CentOS 7安装Zabbix 3.4和Zabbix4.0
    (转)yum安装MariaDB(使用国内镜像快速安装,三分钟安装完毕)
    (转)nmon和nmon analyser的下载和使用
    (转)Db2 数据库常见堵塞问题分析和处理
    (转)我是一个线程
  • 原文地址:https://www.cnblogs.com/zndxall/p/13750997.html
Copyright © 2011-2022 走看看