• 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. Thanks Q&A