aiops-deploy

背景

aws机器资源使用

  • 部署Kafka, Hadoop, ES集群
  • 面对的机器数量: 1 -> n
  • 开始探索自动化的解决方案

ansible介绍

减少运维工作中的重复工作

有哪些重复? 怎么解决?

  • 多台机器执行相同/类似的命令 -> inventory
  • 重复造轮子 -> module

inventory

格式:

[group名]
host 或 ip

例如:

[all]
host[1:5]

[zookeeper]
host[1:5]

[kafka]
host[1:5]

module

格式:

- name: <描述说明(option)>
  <模块名>
  <属性名>: <属性值>
  
例如:

- name: 准备目标路径
  file:
    path: /mnt/disk/aiops
    state: directory

ansible命令

命令(Ad-Hoc Commands):
ansible <host-pattern> [options]
ansible all -m ping
ansible all -m shell -a "supervisorctl status"

脚本(Playbook):
ansible-playbook <playbook-name> [options]
ansible-playbook all.yml -i hosts

链接

Ansible介绍: 简单的入门文档

关于自动化配置还有什么好说的呢?: 形容词, 需求方

简单易懂Ansible系列 —— 解决了什么: 自动化, 模块化, 标准化

Ansible Documentation: 日常参考

项目介绍

怎么用

目录说明

使用说明

项目进度

做了什么, 还有什么要做

已完成

  • jdk/supervisor/zookeeper/kafka/elasticsearch/spark/livy/ran/neo4j
  • hadoop(HDFS格式化前的步骤)
  • mongodb(单机)/influxdb(单机)/redis(单机)

未完成

都在issues里了

心得 & 体会

  1. 版本控制: 配置文件即环境
  2. 自动化: 自动化成本 vs 重复成本*重复次数
  3. 复用: 及时抽出可以复用的东西
  4. 抽象: 把配置复杂度维持在一定的水平

Q & A

Made with Slides.com