- 1. 云巴基于Ansible的自动化运维实践张虎
Yunba.io CEO
- 2. 关于我张虎
连续创业者
云巴(Yunba.io)创始人,CEO
极光推送(JPush)创始人,原 CTO
@Tiger_张虎
- 3. 关于云巴云后端服务
MQTT as a Service
实时pub/sub系统
- 4. 云时代的运维云主机
弹性运算
弹性扩容
灰度上线
每天都可能需要部署
- 5. 典型的过程增加一个新机房
扩容
申请机器
配置 DNS
部署应用
部署监控
自动测试
分配流量
- 6. 自动扩容监控系统发现容量压力
触发扩容过程
- 7. 以前的做法开发工程师写代码
测试工程师测试
运维部署维护
- 8. 问题开发更清楚应该测试什么
开发更清楚怎么部署维护
于是有了 DevOps
- 9. 实际做法开发人员
开发应用
写测试用例
写部署维护脚本
- 10. 理想的部署方式新机器只需支持 SSH
配置机器的 SSH 连接方式
运行一个部署命令
部署完成
不需要 Master、不需要 Agent
- 11. Ansible 概述基于 Python/Jinja2/PyYAML/Paramiko
通过 SSH 连接目标服务器
一个文件定义整个集群 inventory
若干个文件定义部署行为 playbooks
安装、配置
- 12. Ansible Inventory[local]
127.0.0.1
[web-group]
www.yunba.io
www2.yunba.io
[db-group]
db.yunba.io
db2.yunba.io
- 13. Ansible Playbooks---
- name: add nginx repo
sudo: yes
apt_repository: repo='ppa:nginx/stable'
tags: nginx-ppa
- name: install latest nginx
sudo: yes
apt: pkg=nginx state=latest update_cache=yes
- 14. Ansible 开发主要编写 Playbooks
不存在的模块用 Python 扩展
- 15. Ansible 支持251 个模块
云服务
AWS/OpenStack/Rackspace/Docker…
Database
Mysql/Postgresql/mongodb/redis…
Web Infrastructure
Apache/django/jboss…
Monitoring
Nagios/zabbix/monit…
- 16. Demo
- 17. ThanksQ&A