二:操作环境
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 [root@server?~]#?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,查看语法错误 [root@server?~]#?ansible-playbook?mark.yml?-C?-vv ②语法无误,运行文件 [root@server?~]#?ansible-playbook?mark.yml ③查看tomcat管理页面,查看是否部署 ④再次部署新的.war文件,查看剧本可用性
3、实验效果如下
查看tomcat管理员页面,课件web.war已经自动部署上,点击/web字样即可进入网站
注:ansible有关playbook语法使用方法见个人博客?http://blog.51cto.com/13172823/2049192
原文地址:http://blog.51cto.com/13172823/2049208