文档首页 > > 最佳实践> 实践--基于haproxy灰度发布> 实现方式一:替换haprox配置文件> 操作步骤

操作步骤

分享
更新时间: 2020/03/26 GMT+08:00
  1. 本地修改haproxy配置文件。(配置文件说明请参考haproxy官网相关资料

    • 本地新建haproxy_A.cfg配置文件内容:
      #server test_A 10.10.10.10:8080
      server test_B 10.10.10.11:8080
      
      haproxy_A.cfg配置文件表示:下线test_A边流量

        

    • 本地新建haproxy_AB.cfg配置文件内容:
      server test_A 10.10.10.10:8080
      #server test_B 10.10.10.11:8080
      
      haproxy_AB.cfg配置文件表示:上线test_A边流量同时下线test_B边流量

        

    • 本地新建haproxy_B.cfg配置文件内容:
      server test_A 10.10.10.10:8080
      server test_B 10.10.10.11:8080
      
      haproxy_B.cfg配置文件表示:上线test_B边流量

  

  

  1. 将修改后的haproxy配置文件上传至发布仓库中.

    1. 登录首页,进入目标项目,单击顶部导航栏“发布”,进入发布详情页面。

        

    2. 点击“上传”按钮,将本地修改好的的配置文件上传到发布中。

        

  2. 新建主机组

    • 新建主机组 > 添加主机,将部署了haproxy服务的这台机器添加到新建的主机组中。(如何创建主机组

        

  

  1. 新建部署任务

    1. 配置“选择部署来源”任务步骤:
      • 主机组:选择部署haproxy服务的主机组。
      • 选择软件包:选择发布仓库中的haproxy配置文件。(上线A、下线A上线B、上线B)
      • 下载到主机的部署目录:填写haproxy.cfg配置文件所在的目录。

        

    1. 配置“执行shell命令”任务步骤。

        

      参考命令:

      #!/bin/sh
      #haproxy_A.cfg为发布仓库的配置文件名称,用户根据实际情况填写
      Haproxy_cfg_Name="haproxy_A.cfg" 
      #/etc/haproxy/为用户安装haproxy服务机器上的haproxy.cfg配置文件的路径,用户根据实际情况填写
      Haproxy_cfg_Path="/etc/haproxy" 
      #serviceName为切流量的服务名称
      serviceName="haproxy"
      port="1234" #haproxy的监听端口
      now_time=`date +%Y%m%d%H%M%S`
      cp $Haproxy_cfg_Path/haproxy.cfg $Haproxy_cfg_Path/haproxy.cfg.$now_time
      /usr/sbin/$serviceName -c -q -f $Haproxy_cfg_Path/$Haproxy_cfg_Name  
      checkflag=$?  
      if [ "$checkflag" -eq 0 ]
         then
              mv $Haproxy_cfg_Path/$Haproxy_cfg_Name $Haproxy_cfg_Path/haproxy.cfg
              sudo iptables -I INPUT -p tcp --dport $port --syn -j DROP 
              sleep 1
                    service haproxy reload    #(参考命令)若已将haproxy注册成服务的形式
      # 参考命令(没有注册成服务):/usr/sbin/$serviceName -D -f /etc/$serviceName/$serviceName.cfg -p /var/run/$serviceName.pid -sf $(cat /var/run/$serviceName.pid)
              sudo iptables -D INPUT -p tcp --dport $port --syn -j DROP
         else
              echo "$Haproxy_cfg_Name 配置文件路径或内容格式错误"
       
                    return 1
      fi

  

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区