• 使用gitlab, jenkins搭建CI(持续集成)系统(4) 灰度发布publish


    publish环境是正式环境,和dev, test, prepublish环境不同的是,正式环境一般要更加谨慎一些,发布的时候需要有一个灰度过程,即:分多次部署,每次部署几个服务器节点,验证没有问题以后,再部署几台,直到所有的节点多部署完成。

    jenkins提供的一种choice parameter的构建参数类型,可以使用这种参数类型实现灰度发布的功能。

    添加一个名为DEPLOY的choice parameter, 添加两个选项group01, group02。

    接下来修改构建脚本

    ############

    export appname="example-springbootmvc"

    export master_user="root"
    export master_appsdir="/apps"
    export master_iplist="192.168.1.41"

    export test_user="root"
    export test_appsdir="/apps"
    export test_iplist="192.168.1.42"

    export release_user="root"
    export release_appsdir="/apps"
    export release_iplist="192.168.1.43,192.168.1.44"

    export publish_user="root"
    export publish_appsdir="/apps"
    #定义choice paramter DEPLOY 可选值 group01 group02
    export publish_group01_iplist="192.168.1.45"
    export publish_group02_iplist="192.168.1.46"


    /root/jenkins/scripts/distanddeploy.sh

    ####################

    在distanddeeploy.sh中

    if [ "$BRANCH" = "publish" ]; then
    eval iplist=$${BRANCH}_${DEPLOY}_iplist
    fi

    这里使用了DEPLOY变量,这个变量只会影响publish构建过程。

    手动触发构建时,BRANCH填publish,  DEPLOY选择group01时,对应的是

    export publish_group01_iplist="192.168.1.45"

    将会部署192.168.1.45节点

    当DEPLOY选择group02时,对应的是

    export publish_group02_iplist="192.168.1.46"

    将会部署192.168.1.46节点

    部署完成之后验证

    在浏览器上输入 

    http://192.168.1.45:9303/rest/get

    http://192.168.1.46:9303/rest/get 

    返回类似于:

    {"retCode":0,"errMsg":null,"data":{"userId":"11111","timeStamp":1521293070588,"info":"this is 9 env:realpublish"}}

    这就表示部署成功啦!! 

  • 相关阅读:
    Attribute与元数据
    clr相关名词
    webHttpBinding、basicHttpBinding和wsHttpBinding区别
    Python3.7 AES加密 pycrypto‎ 更新为 pycrypto‎demo | TypeError: Object type <class 'str'> cannot be passed to C code(转)
    如何判断代理IP是否有效
    直观理解梯度,以及偏导数、方向导数和法向量等(转载)
    python_控制台输出带颜色的文字方法(转载)
    Matplotlib.pyplot 常用方法
    scrapy自定制命令
    scrapy中间件
  • 原文地址:https://www.cnblogs.com/brandonli/p/8592867.html
Copyright © 2020-2023  润新知