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
- [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主机
- 、配置tomcat,显示管理页面,用以管理war包的部署
- 、配置nginx配置文件,确保后端tomcat主机root相同,并在root下创建index.html文件,写入up/down
- 、开启nginx服务
- 、将/data目录设为默认新war包存放目录
- 、创建?/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
ansible实战应用之——自动化系统上线
ansible 自动化 系统上线
原文:http://blog.51cto.com/13172823/2049208
来源: http://www.bubuko.com/infodetail-2424059.html