腾讯蓝鲸实现vsphere虚拟机交付

853 阅读3分钟

这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战

简介

很多中小公司使用vsphere虚拟化为应用提供基础设施,相对之前的物理机配置管理方便了很多。但是在运维的工作中虚拟机上架并不是孤立的,需要配合其他管理工具形成一套完整的流程。 尤其当运维平台基于cmdb为各应用场景提供数据支撑时,新增的设备必须能够及时更新,否则cmdb将会陷入比较尴尬的地步,逐渐成为一种负担。

为解决这种问题,我们借助腾讯蓝鲸社区版5.1标准运维实现vsphere虚拟机上架交付,流程如下:

  1. 虚拟机模板克隆、定制ip;

  2. jumpserver自动添加资产及用户推送;

  3. 注册蓝鲸cmdb;

  4. 完成后邮件通知;

涉及知识点

1.vsphere自定义规范管理器

2.蓝鲸开发框架+python+django+celery

3.pyvmomi vsphere 管理

4.蓝鲸标准运维-原子开发

5.蓝鲸API

6.jumpserver api

需求

1.原始流程

image.png

2.痛点

(1)需要在vsphere、jumpserver、jenkins等工具中切换才能完成上架需求;

(2)虚拟机创建后需要先修改主机名、ip、zabbix-agent等才能完成新的虚拟机;

(3)每台虚拟机由创建到初始化话,整个过程时间在10分钟以上,效率不高;

(4)蓝鲸平台自带原子,不能管理vsphere、jumpserver、注册cmdb等操作,需要自己开发对应原子;

解决方案

1.现在流程

image.png

2.优势

(1)使用自定义规范管理器创建虚拟机,创建过程中直接根据自定义的IP、主机名建立虚拟机,无需二次登录修改;整个创建过程在1分40秒左右,大大提高到了效率;

(2)虚拟机创建完毕后,有开机启动脚本自动安装蓝鲸agent、修改内核参数、更改zabbix agent地址,便于后续流程操作;

(3)调用jumpserver api自动添加资产并推送指定的系统用户;无需切换至多个管理界面;

(4)调用蓝鲸API自动注册cmdb并将虚拟机转移到当前业务的空闲模块下;

(5)最后自动邮件通知业务相关维护人员;

3.实现

借助蓝鲸标准运维,开发标准运维自定义开发原子(由于蓝鲸自带原子没有以下功能,需要自定义开发):

  • 虚拟机管理(VSPHERE)-创建虚拟机;
  • 跳板机管理(JUMP)-创建资产、推送系统用户;
  • 配置平台自定义(CMDB)-主机注册;

虚拟机上架流程如下:

image.png

此流程开始后会安装模板依次执行相关操作,各节点执行成功后将进行邮件通知;

但是某个节点失败,需要查看相关报错信息后,运维人员再进行修改变量进行重新执行;

注意:此流程模板设计的术语(可到蓝鲸文档中心-标准运维查看):

  • a.原子节点

  • b.分支网关

  • c.并行网关

  • d.汇聚网关

  • e.子流程节点

  • f.全局变量

不足

  1. 对于IDC机房的网络分为段,在vsphere中需要选择不同网段的网卡,目前自己开发的虚拟机管理原子不支持;

  2. 此流程只针对虚拟机使用,物理机上架可通过cobbler安装系统并初始化,后续可通过子流程(跳板机新增资产)添加jumpserver,如下:

image.png

总结

在进行虚拟机交付前,我们需要做一系列的标准化规范,如:主机名规范、操作系统规范;只有按照规范生成的虚拟机,才能够在生产环境中安全有效管理。

在接下来的文章中,我们将陆续介绍相关原子的开发,本文主要介绍了整个虚拟机交付的具体实现思路。