使用ansible+vue搭建elastic的自动化部署和配置平台

文章目录

    • 背景
    • 原型
    • 需求
      • 核心的需求
      • 管理需求
      • 技术需求
      • 可扩展需求
    • 招募

背景

因为经常和elastic打交道,所以平常写了很多关于elastic的博文。因为elastic的更新速度,所以常常骂空气。基本上每个月都会有一个版本更新,为了跟上速度,集群,插件的版本和配置更新工作就成了家常便饭。虽然自己写了一套ansible的脚本,但使用起来并没有那么方便。单纯使用 ansible 脚本,在我看来有以下缺点:

  • 要想让自己轻松,需要工作尽量的简单。但大量的inventory和ansible playbook文件需要管理,非常的不直接,敲命令也很麻烦
    使用ansible+vue搭建elastic的自动化部署和配置平台_第1张图片
  • 要想让自己轻松,需要别人可以代替你。但使用ansible和ansible playbook有一定学习成本,无法让不熟悉ansible的人完成对应的工作
  • 要想让自己轻松,需要工具灵活可用。但ansible要求机器上安装有python, ansible,并且脚本也在本地才能执行

因此,也就有需求做一个工具,能够轻松的一键完成集群管理和维护工作,而不需要每个人都维护一套ansible脚本,安装ansible,并且知道如何使用ansible。

原型

因此,我打算开发一套可视化工具,可以一键自动化完成elastic集群的维护工作,比如:部署,配置更新,启停,状态读取等。

原型如下:

需求

核心的需求

核心的需求包含:

  • 能够读取不同的inventory文件,并且展示在UI上,通过选择不同的inventory,可以对不同的机器集群进行操作。比如:dev, uat, prod 等我们熟知的环境分类
  • 能够读取inventory中的group,我们可以选择不同的group进行操作。比如:在一个inventory里面有kibana, elasticsearch, logstash, filebeat, metricbeat, kafka, zookeeper等
  • 能够在界面上一键执行后台的ansible playbook,并且反馈输出,提供交互。比如:能够选择对应的hosts,然后一键下载节点上的配置文件,在界面上修改,然后上传到对应的节点上,再重启对应的服务。

管理需求

包含:

  • 用户登陆权限
  • 用户操作记录和审计
  • ansible执行操作的的记录

技术需求

包含:

  • 前后端分离,后端使用python(因为需要以API的方式调用ansible,参考手把手教你在python中运行ansible-playbook),前端使用vue(因为我比较熟悉这个,?)
  • 前端模块化设计
  • 后端能方便添加ansible playbook,通过rest api提供ansible playbook的调用能力

可扩展需求

尽量的通用化设计,将系统能方便的改造,以支持除elastic之外的其他大数据集群的维护工作

招募

目前,我只做了一个简单的原型,能调用ansbile完成配置更新的工作,但一个人实在能力有限,望有大牛能够加入我,一起做一个开源项目,造福懒人,?。感兴趣的请在本文评论里留言,或者给我发消息!

你可能感兴趣的:(Devops,ELK,python)