这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战
简介
很多中小公司使用vsphere虚拟化为应用提供基础设施,相对之前的物理机配置管理方便了很多。但是在运维的工作中虚拟机上架并不是孤立的,需要配合其他管理工具形成一套完整的流程。 尤其当运维平台基于cmdb为各应用场景提供数据支撑时,新增的设备必须能够及时更新,否则cmdb将会陷入比较尴尬的地步,逐渐成为一种负担。
为解决这种问题,我们借助腾讯蓝鲸社区版5.1标准运维实现vsphere虚拟机上架交付,流程如下:
-
虚拟机模板克隆、定制ip;
-
jumpserver自动添加资产及用户推送;
-
注册蓝鲸cmdb;
-
完成后邮件通知;
涉及知识点
1.vsphere自定义规范管理器
2.蓝鲸开发框架+python+django+celery
3.pyvmomi vsphere 管理
4.蓝鲸标准运维-原子开发
5.蓝鲸API
6.jumpserver api
需求
1.原始流程
2.痛点
(1)需要在vsphere、jumpserver、jenkins等工具中切换才能完成上架需求;
(2)虚拟机创建后需要先修改主机名、ip、zabbix-agent等才能完成新的虚拟机;
(3)每台虚拟机由创建到初始化话,整个过程时间在10分钟以上,效率不高;
(4)蓝鲸平台自带原子,不能管理vsphere、jumpserver、注册cmdb等操作,需要自己开发对应原子;
解决方案
1.现在流程
2.优势
(1)使用自定义规范管理器创建虚拟机,创建过程中直接根据自定义的IP、主机名建立虚拟机,无需二次登录修改;整个创建过程在1分40秒左右,大大提高到了效率;
(2)虚拟机创建完毕后,有开机启动脚本自动安装蓝鲸agent、修改内核参数、更改zabbix agent地址,便于后续流程操作;
(3)调用jumpserver api自动添加资产并推送指定的系统用户;无需切换至多个管理界面;
(4)调用蓝鲸API自动注册cmdb并将虚拟机转移到当前业务的空闲模块下;
(5)最后自动邮件通知业务相关维护人员;
3.实现
借助蓝鲸标准运维,开发标准运维自定义开发原子(由于蓝鲸自带原子没有以下功能,需要自定义开发):
- 虚拟机管理(VSPHERE)-创建虚拟机;
- 跳板机管理(JUMP)-创建资产、推送系统用户;
- 配置平台自定义(CMDB)-主机注册;
虚拟机上架流程如下:
此流程开始后会安装模板依次执行相关操作,各节点执行成功后将进行邮件通知;
但是某个节点失败,需要查看相关报错信息后,运维人员再进行修改变量进行重新执行;
注意:此流程模板设计的术语(可到蓝鲸文档中心-标准运维查看):
-
a.原子节点
-
b.分支网关
-
c.并行网关
-
d.汇聚网关
-
e.子流程节点
-
f.全局变量
不足
-
对于IDC机房的网络分为段,在vsphere中需要选择不同网段的网卡,目前自己开发的虚拟机管理原子不支持;
-
此流程只针对虚拟机使用,物理机上架可通过cobbler安装系统并初始化,后续可通过子流程(跳板机新增资产)添加jumpserver,如下:
总结
在进行虚拟机交付前,我们需要做一系列的标准化规范,如:主机名规范、操作系统规范;只有按照规范生成的虚拟机,才能够在生产环境中安全有效管理。
在接下来的文章中,我们将陆续介绍相关原子的开发,本文主要介绍了整个虚拟机交付的具体实现思路。