设为首页 收藏本站
查看: 898|回复: 0

[经验分享] ansible实战应用之——自动化系统上线

[复制链接]

尚未签到

发表于 2018-7-29 08:05:21 | 显示全部楼层 |阅读模式
1、配置haproxy  

  
①开启后端服务器状态监测页面
  
②开启基于页面内容的健康监测
  
③指明后端主机
  

  
编辑haproxy主配置文件,写入如下内容:
  
frontend  main
  
    mode http #基于http协议
  
    bind 0.0.0.0:1080 #监听1080端口
  
    stats enable #开启服务统计报告
  
    stats hide-version  #隐藏统计报告版本信息
  
    stats uri   /haproxyadmin?stats  #统计访问报告url
  
    stats auth  admin:admin       #登陆认证
  
    stats admin if TRUE         #验证模式
  
    default_backend  servers          #默认后端服务器组
  
backend servers
  
    balance     roundrobin
  
    option      httpchk GET /index.html      #开启基于页面内容的健康监测
  
    http-check expect string up  #定义健康内容为"up"
  
    server      server1 172.17.214.74:80 check
  
    server      server2 172.17.214.75:80 check
  

  
2、修改ansible配置文件,定义主机组web
  
[root@server ~]# vim /etc/ansible/hosts
  
    [web]
  
    172.17.214.74
  
    172.17.214.75
  

  
3、创建test.sh脚本文件,用来在playbook中对部署后的新war包进行最后一步的健康检测
  
        #!/bin/bash
  
        host_ip=`ifconfig | grep &quot;\<inet\>&quot; | grep -v 127.0.0.1 | head -1 | awk '{print $2}'` #截取tomcat主机ip
  
        curl http://$host_ip/web/ -D curl.txt &> /dev/null    #访问tomcat网站,并将头部信息存放在指定文件中
  
        num=`head -1 curl.txt| cut -d' ' -f2`    #截取网站响应码
  
        if [[ &quot;$num&quot; =~ &quot;^[2|3].*&quot; ]];then      #判断响应码是否正常
  
                exit 0               #正常返回0
  
        else
  
                exit 1              #不正常返回1
  
        fi
  
        unset num host_ip
  

  
4、创建mark.yml文件,定义playbook
  

  
    - hosts: web
  
    remote_user: root
  
    serial: 1   ##按主机顺序执行操作,主机A上线操作全部完成后再进行B的操作
  
    vars:
  
        - new: solo-2.2.0.war    #新建new变量,用以存放新上线war包名称
  
    tasks:
  
        - name: mark down
  
          shell: echo &quot;down&quot;>/data/webapps/index.html    #mark down,系统下线
  
        - name: stop tomcat
  
          service: name=tomcat state=stopped         #关闭tomcat服务
  
        - name: sleep 5s                   #等待5秒,给予服务关闭充分的时间
  
          shell: sleep 5
  
        - name: create new soft link            #新建软链接,源文件替换为新上线war包
  
          file: src=/data/{{ new }} dest=/var/lib/tomcat/webapps/web.war state=link force=yes
  
        - name: start tomcat                 #启动tomcat服务
  
          service: name=tomcat state=started
  
        - name: sleep 5s                   #等待5秒,给予服务启动充分的时间
  
          shell: sleep 5
  
        - name: test the new website
  
          shell: ./test.sh                  #判断脚本是否执行正常,不正常则中止上线
  
        - name: mark up                    #mark up,系统上线
  
          shell: echo &quot;up&quot;>/data/webapps/index.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-542784-1-1.html 上篇帖子: 运维自动化好帮手:ansible软件入门篇 下篇帖子: Ansible_变量定义与引用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表