ansible实战应用之——自动化系统上线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible实战应用之——自动化系统上线相关的知识,希望对你有一定的参考价值。

一:系统上线基本流程

技术分享图片


二:操作环境

ansible主机一台:

? ? 软件需求:haproxy、ansible

?? ?实现功能:haproxy健康监测,ansible自动化运维

tomcat主机两台:

? ? 软件需求:tomcat、nginx

? ? 实现功能:tomcat实现war包上线,nginx负责健康监测页面


三:操作目的

通过ansible,实现war包上线的自动化操作?


四:操作步骤

1、配置阶段

A:操作环境:ansible主机

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??#定义健康内容
????server??????server1?172.17.214.74:80?check
????server??????server2?172.17.214.75:80?check

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

3、创建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?"down">/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:?mark?up????????????????????#启动nginx服务
??????????shell:?echo?"up">/data/webapps/index.html
注意:①yml语法格式,尤其是空格
??????②serial与fork的区别

B:操作环境:tomcat主机?

1、配置tomcat,显示管理页面,用以管理war包的部署
2、配置nginx配置文件,确保后端tomcat主机root相同,并在root下创建index.html文件,写入up/down
3、开启nginx服务
4、将/data目录设为默认新war包存放目录
5、创建?/var/lib/tomcat/webapps/web.war?文件,用以创建软链接

2、测试阶段

①模拟运行playbook,查看语法错误
[[email protected]?~]#?ansible-playbook?mark.yml?-C?-vv

②语法无误,运行文件
[[email protected]?~]#?ansible-playbook?mark.yml

③查看tomcat管理页面,查看是否部署

④再次部署新的.war文件,查看剧本可用性

3、实验效果如下

查看tomcat管理员页面,课件web.war已经自动部署上,点击/web字样即可进入网站

技术分享图片


注:ansible有关playbook语法使用方法见个人博客?http://blog.51cto.com/13172823/2049192

以上是关于ansible实战应用之——自动化系统上线的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维工具Ansible实战Playbooks剧本使用

Ansible实战之博客站点部署

Ansible:分布式场景下的自动化运维利器实战!!!

Ansible Tower实战大全:第一篇

ansible自动化管理windows系统实战

自动化运维工具之ansible的简单应用